@Override
protected void onDraw(Canvas canvas)
{
Drawable drawable = getDrawable();
if (drawable instanceof BitmapDrawable)
{
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
Paint paint = new Paint();
...//根据需要计算展示区域在大图中的位置
// 绘制大图的某个区域,左上右下
Rect src = new Rect(left, top, right, bottom);
// 绘制区域,填满控件
Rect des = new Rect(0, 0, getWidth(), getHeight());
// 圆角
Path clipPath = new Path();
clipPath.addRoundRect(new RectF(des), radius, radius, Path.Direction.CW);
canvas.clipPath(clipPath);
canvas.drawBitmap(bitmap, src, des, paint);
}
else
{
super.onDraw(canvas);
}
}
Android:自定义ImageView展示大图中的指定区域并切圆角(雪碧图)
最新推荐文章于 2026-06-14 15:49:53 发布
本文详细介绍了如何在Android中自定义ImageView组件,以实现从雪碧图中加载特定区域,并将该区域的图片进行圆角处理。通过自定义绘图方法,结合Bitmap的裁剪和转换,达到高效展示大图局部并添加圆角的效果。
&spm=1001.2101.3001.5002&articleId=70184952&d=1&t=3&u=2e52426217f249ab9446f1bb5d74af97)
1057

被折叠的 条评论
为什么被折叠?



