当前位置: 移动技术网 > 移动技术>移动开发>Android > android中圆角图像生成方法

android中圆角图像生成方法

2019年07月24日  | 移动技术网移动技术  | 我要评论

本文实例讲述了android中圆角图像生成方法。分享给大家供大家参考。具体分析如下:

在android开发中为了美观,常常要求imageview中显示出圆角图像的效果,这个如何实现?

这里总结了网上的最优方法:将图像处理成圆角,然后在加载给imageview显示,代码如下:

public bitmap getroundedcornerbitmap(bitmap bitmap, int pixels) {
bitmap output = bitmap.createbitmap(bitmap.getwidth(), bitmap
 .getheight(), config.argb_8888);
canvas canvas = new canvas(output);
final int color = 0xff424242;
final paint paint = new paint();
final rect rect = new rect(0,0,bitmap.getwidth(),bitmap.getheight());
final rectf rectf = new rectf(rect);
paint.setantialias(true);
canvas.drawargb(0, 0, 0, 0);
paint.setcolor(color);
canvas.drawroundrect(rectf, pixels, pixels, paint);
paint.setxfermode(new porterduffxfermode(mode.src_in));
canvas.drawbitmap(bitmap, rect, rect, paint);
return output;
}

附上一张效果图:

这个方法没有一点问题,但是,如果加载的图像过大的话,这种方法需要耗时,这样对于大量的imageview而言,刷新就会出现卡顿或者闪烁的问题了,如何解决这个问题呢?

我觉得,如果是这样,那么我们只能舍弃这种方法,退而求其次,我们够建两层imageview,第一层是原始方角图像a,第二层是一个特殊的资源图b,它的大小与原图一样,我们假设a按照上面的方法得到的圆角图像为c,那么定义图像t=a-c,然后我们把t改为我们需要的背景颜色,这样b=t(背景色),最后的效果就是a在下面,b在上面,四个角是圆角效果,方角图像被覆盖在了b下面了。这样做就省去了直接图像处理所造成的耗时问题。但是,如果是图像大小较小,数量不大的情况下, 本人还是建议使用第一种方法,毕竟原版的效果好,盗版还是盗版啊呵呵!

希望本文所述对大家的android程序设计有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网