首页 > 其他分享 >Android 设置任意View的背景为圆形或圆角

Android 设置任意View的背景为圆形或圆角

时间:2023-10-11 20:22:46浏览次数:40  
标签:圆角 rect import Android View Rect view

原文地址: Android 设置任意View的背景为圆形或圆角 - Stars-One的杂货小窝

我的需求主要还是在SurfaceView需要设置为圆形背景,在网上找了下,发现一个可行方法,做个记录

import android.graphics.Outline;
import android.graphics.Rect;
import android.view.View;
import android.view.ViewOutlineProvider;

public class TextureVideoViewOutlineProvider extends ViewOutlineProvider {
    private float mRadius;

    public TextureVideoViewOutlineProvider(float radius) {
        this.mRadius = radius;
    }

    @Override
    public void getOutline(View view, Outline outline) {
        Rect rect = new Rect();
        view.getGlobalVisibleRect(rect);
        int leftMargin = 0;
        int topMargin = 0;
        Rect selfRect = new Rect(leftMargin, topMargin,
                rect.right - rect.left - leftMargin, rect.bottom - rect.top - topMargin);
        outline.setRoundRect(selfRect, mRadius);
    }
}

使用的时候传任意一个view对象设置即可,如下例子:

mView.setOutlineProvider(new TextureVideoViewOutlineProvider(radius));
mView.setClipToOutline(true);

任何view都可以通过此方法设置,如果想要变为圆形,可以将圆角设置为组件宽度的一半(当然组件的宽高是1:1的正方形)

参考

标签:圆角,rect,import,Android,View,Rect,view
From: https://www.cnblogs.com/stars-one/p/17758092.html

相关文章

  • 安装 Android x86 并开启 arm 兼容
    安装Androidx86并开启arm兼容尝试了各种安卓模拟器,要么不能设置代理(BlueStacks),要么/system目录没办法设置。获取Androidx86这里使用的是Android7版本,在本次操作时houdini对Android8/Android9的版本支持有限。从Android-x86旧版本获取7.1的Android-x86_......
  • ADO.NET读取MySQL数据库的三种方式:DataReader、DataSet、DataView
    https://blog.csdn.net/lilongsy/article/details/127351421ADO.NET读取MySQL数据库有多种方式:DataReader、DataSet、DataView。Command对象的ExecuteScalar方法查询数据库获取某个单个值,但是如果获取多行、多列可以用ExcecuteReader,ExcecuteReader返回一个DataReader的数据流对......
  • 金九银十Android面试该怎么有效的回答,看完这篇文章就懂了
    今年的严寒使得许多职场人的求职时间变长,以往火热的金三银四不再,金九银十九承载着广大程序员的希望。但是在这个特殊情况下,竞争压力也会增大,各大企业对于求职者的要求也随之增高。很多小伙伴都面临着这样的情况:千辛万苦拿到面试机会,却因各种原因翻车。“在面试的时候不能将自己的真......
  • Android入门教程 | ImageView 图片显示
    为了让App界面更美观生动,我们可以放上图片。显示图片是“刚需”。不论是书籍,报纸,网站,都有显示图片的需求。毕竟“无图无真相”。在Android应用开发中,我们通常使用ImageView来显示图片。ImageView的主要属性ImageView的使用ImageView经常用来显示图片。例如直接显示drawable里......
  • 调用Android设备中已经安装的软件打开各种类型的指定文件
    最近因项目需求需要在android应用程序中下载一些附件,并打开这些附件,比如音视频视频以及图片这些。开始还好,文件类型不是很多,但是后来需求又加上doc/xls/ppt等,后来又兼容了pdf。这时候已经被需求改的烦不胜烦,觉得有必要针对打开本地文件做一个通用的封装了,判断File的类型,然后用指......
  • 视频直播源码,AndroidStudio登录页面的切换
    视频直播源码,AndroidStudio登录页面的切换xml代码 <?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-auto"  ......
  • 关于linux:Android的/ storage / emulated / 0和/ data / media / 0的不同权限
     Android/storage/emulated/0and/data/media/0differentpermissions我有LGG3智能手机。在文件系统探索期间,我发现/storage/emulated/0/...目录(从系统接收到我的本地用户)具有不允许chmod和chown操作的权限。当我尝试将某些文件更改为777时,我收到了0个结果......
  • android 13 指纹整理
    android13指纹整理术语缩略语英文全名中文解释TEETrustedExecutionEnvironment可信执行环境,存在于主CPU中的一块安全运行环境。CAClientApplication客户端应用,通常指运行在REE的应用TATrustedApplication可信应用,通常指运行在TEE环境的应用......
  • 【Android面试】2023最新面试专题六:Java并发编程(一)
    1、假如只有一个cpu,单核,多线程还有用吗?详细讲解享学课堂移动互联网系统课程:架构师筑基必备技能《线程与进程的理论知识入门1》这道题想考察什么?是否了解并发相关的理论知识考察的知识点cpu多线程的基本概念操作系统的调度任务机制CPU密集型和IO密集型理论考生应该如何回答CPU的执......
  • 不都说金九银十嘛?为什么招聘软件上的Android岗位都变少了?
    前言刷知乎刷到了这样的一个话题,在北京裸辞三个多月都没有找到合适的工作,紧接着各种压力接踵而至,压的喘不过气,各种招聘网站看了个遍没有几个符合要求的工作,七八月没周都能约到两个到三个面试,到了九月感觉会好一点因为都说是金九银十,感觉自己机会要来了,结果九月更惨网站上的工作还没......