Android中ImageView半边圆角处理记录2

Android  代码片段  2023年2月21日 am8:08发布2年前 (2023)更新 城堡大人
132 0 0

前言

之前介绍过对ImageView进行圆角处理,具体文章《Android中ImageView半边圆角处理记录 -笔友城堡 - 阅读是一种生活方式 ()》,后面发现网上还有一种更简单的一种方式。

  1. 有点:代码少,简单
  2. 缺点:边界不够圆滑(存在锯齿)

正文

具体效果如下(左侧是RoundImageView2,右侧是之前RoundImageView),看圆角处,RoundImageView2就存在锯齿。

Android中ImageView半边圆角处理记录2

代码片段

public class RoundImageView2 extends androidx.appcompat.widget.AppCompatImageView {

    private final Path mPath;
    private float mWidth, mHeight;

    public RoundImageView2(Context context) {
        this(context, null);
    }

    public RoundImageView2(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public RoundImageView2(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        mPath = new Path();
    }

    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        mWidth = getWidth();
        mHeight = getHeight();
    }

    @Override
    protected void onDraw(Canvas canvas) {
        int radius = 20; //圆角半径
        if (mWidth > radius && mHeight > radius) {
            mPath.moveTo(radius, 0);
            mPath.lineTo(mWidth - radius, 0);
            mPath.quadTo(mWidth, 0, mWidth, radius);
            mPath.lineTo(mWidth, mHeight - radius);
            mPath.quadTo(mWidth, mHeight, mWidth - radius, mHeight);
            mPath.lineTo(radius, mHeight);
            mPath.quadTo(0, mHeight, 0, mHeight - radius);
            mPath.lineTo(0, radius);
            mPath.quadTo(0, 0, radius, 0);
            canvas.clipPath(mPath);
        }
        super.onDraw(canvas);
    }

}

参考文章

  1. Android中ImageView半边圆角处理记录 -笔友城堡 - 阅读是一种生活方式 ()

 历史上的今天

  1. 2020: Android Studio的Gradle下载慢(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

张枣:镜中

只要想起一生中后悔的事梅花便落了下来 比如看她游泳到河的另一岸比如登上一株松木梯子危险的事固然美丽 不如看她骑马归来面颊温暖羞涩。低下头,回答着皇帝 一面镜子永远等候她让她坐到镜中常坐的地方望着窗外,只要想起一生中后悔的事梅花便落满了南山

Android防爆力点击简单实用方法简介

在产品测试,有些按钮或者功能需要进行暴力测试。理论上说是没啥问题,但是有些功能响应需要一定的时间,如果在很短时间内来多次点击就会异常或者奔溃。因此,在有些功能是需要对功能加一些防爆力点击措施。闲着没事也整理一下自己项目中常用的措施,当然如果您有更好的方法,也欢迎分享。你有一个苹果,我有一个苹果,...

Android.mk介绍之一基础语法

Android.mk一系列文章计划介绍内容如下几个章节:1、Android.mk介绍之一基础语法2、Android.mk介绍之二预编译生成的文件类型3、Android.mk介绍之三引用静态库,动态库1、Android.mk的基本语法对于Android开发,尤其是Android源码开...

触发了v2ex.com某些机制,被禁止访问

前言尴尬,触发了v2ex.com某些机制,被禁止访问。Google Chrome提示访问 v2ex.com 的请求遭到拒绝您未获授权,无法查看此网页。HTTP ERROR 403微软 Edge提示访问 v2ex.com 被拒绝你没有查看此页面的用户权限。HTTP ERROR 403...

朱自清:神奇的丝瓜

今年春天,孩子们在房前空地上,斩草挖土,开辟出来了一个一丈见方的小花园。周围用竹竿扎了一个篱笆,移来了一棵玉兰花树,栽上了几株月季花,又在竹篱下面随意种上了几棵扁豆和两棵丝瓜。土壤并不肥沃,虽然也铺上了一层河泥,但估计不会起很大的作用,大家不过是玩玩而已。过了不久,丝瓜竟然长了出来,而且日益茁壮。...

朱湘:海外寄霓君(节选)

一霓妹,我的爱妻:你从般若庵十二月初五写的“第一封”信我收到了。我后天就要搬家,你的信可以寄到憩轩四兄第一次替你打的信封那里。我在芝加哥城里过得好些,身体也好,望你不要记挂。我到今天总共收到你八封信。你信内并不曾提到岳母大人同憩轩四兄的病,想必是都好了。你的奶水不够,务必要请奶妈子。照我如今这般...