android自定义view-打造圆形ImageView(三)

这篇博客是关于如何使用drawable和BitmapShader在Android中创建圆形ImageView的教程。作者介绍了通过继承drawable来简化自定义view的过程,避免了onMeasure的复杂性。文章包括步骤说明,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

前言:

时隔了一个星期,由于毕业论文的事情一直耽搁了写博客,今天有了点空闲时间把上次的圆形图片继续讲完。前面两篇分别用了BitmapShader和Xfermode方式实现了圆形圆角图片,详情请戳android自定义view-打造圆形ImageView(一)android自定义view-打造圆形ImageView(二)。好,今天我们用比较简单的drawable加上BitmapShader方式去实现,这样做的好处就是省略了自定义view的onMeasure的过程,看起来挺简洁的。

效果图:


正文:

Step1:继承自drawable

public class RoundDrawableImageView extends Drawable
Step2:在构造方法中初始化画笔等属性:

public RoundDrawableImageView(Bitmap bitmap) {
		mBitmap = bitmap;
		BitmapShader shader = new BitmapShader(bitmap, TileMode.CLAMP, TileMode.CLAMP);
		paint = new Paint(Paint.ANTI_ALIAS_FLAG);
		paint.setShader(shader);
	}
Step3:重写drawable的几个方法

	@Override
	public int getIntrinsicWidth() {
		return mBitmap.getWidth();
	}

	@Override
	public int getIntrinsicHeight() {
		return mBitmap.getHeight();
	}

	@Override
	public void draw(Canvas canvas) {
		canvas.drawRoundRect(rec
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值