Android 设置控件为圆形

Android的圆形控件 对于所有的View有效

在开发的过程中,肯定需要实现一个圆形的控件,而且不是绘制一个圆形,那么怎么弄呢,在Android5.0后,有一个类ViewOutlineProvider,可以实现这个功能,应该是对于所有VIew有效。

这里我是用的是TextureView,这个控件挺不一样的 其实这个和SurfaceView都可以使用了之后应该都可以。

代码如下

html 复制代码
public class TextureVideoViewOutlineProvider extends ViewOutlineProvider {
    @Override
    public void getOutline(View view, Outline outline) {
        int left = 0;
        int top = (view.getHeight() - view.getWidth()) / 2;
        int right = view.getWidth();
        int bottom = (view.getHeight() - view.getWidth()) / 2 + view.getWidth();
        outline.setOval(left, top, right, bottom);
    }
}

然后在布局所在的类里面去使用:

html 复制代码
  view.setOutlineProvider(new TextureVideoViewOutlineProvider());
  view.setClipToOutline(true);

原文链接:https://blog.csdn.net/weixin_43328457/article/details/106384660

相关推荐
杉氧1 天前
跨平台持久化:Flutter 本地数据库的多线程安全与架构设计实践
android·前端·flutter
小孔龙1 天前
Compose 布局与绘制:LayoutNode、DisplayList 与 GraphicsLayer
android·android jetpack
淡淡的香烟1 天前
Android常用adb命令
android·adb
艾莉丝努力练剑1 天前
【MYSQL】MYSQL学习的一大重点:事务(上)- 原子性与持久性
android·数据库·学习·mysql·面试
plainGeekDev2 天前
工厂模式 → Hilt
android·java·kotlin
雨白2 天前
深入理解 Kotlin 协程 (十):引而不发,探秘 Flow 冷流机制与异常透明性
android·kotlin
plainGeekDev2 天前
Application 单例 → Hilt Singleton
android·java·kotlin
程序员码歌2 天前
我全程用 AI开发了一款微信小游戏,上线了
android·前端·游戏开发
黄林晴2 天前
你敢信吗?同样是跨端,KMP 跟 RN 居然差这么多!
android·前端
zbmwa2 天前
jetpack compose 副作用 produceState
android