图片圆角问题 imageviewxmlimageLoader 网络加载图片 图片圆角 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 imgeview设背景确实是不可行的,不过可以考虑两个方向,一个是直接将图片资源裁剪成圆角的,第二是,才用覆盖另一个特殊的view在imageview上,使看起来有圆角,比如一个四周是背景颜色,中间是椭圆透明区域的view // 转换圆角为图片 public static Drawable getRoundedCornerDrawable(Drawable drawable) { BitmapDrawable bd = (BitmapDrawable) drawable; Bitmap bitmap = bd.getBitmap(); int width = bitmap.getWidth() < bitmap.getHeight() ? bitmap.getWidth() : bitmap.getHeight(); Bitmap output = Bitmap.createBitmap(width, width, Config.ARGB_8888); Canvas canvas = new Canvas(output); final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, width, width); final RectF rectF = new RectF(rect); final float roundPx = width; paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); drawable = new BitmapDrawable(bitmap); return drawable; } 这需要自定义imageview,实现圆角 问题已解决。楼主来结贴了! public static Bitmap getRoundCornerImage(Bitmap bitmap, int roundPixels) { //创建一个和原始图片一样大小位图 Bitmap roundConcerImage = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); //创建带有位图roundConcerImage的画布 Canvas canvas = new Canvas(roundConcerImage); //创建画笔 Paint paint = new Paint(); //创建一个和原始图片一样大小的矩形 Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); RectF rectF = new RectF(rect); // 去锯齿 paint.setAntiAlias(true); //画一个和原始图片一样大小的圆角矩形 canvas.drawRoundRect(rectF, roundPixels, roundPixels, paint); //设置相交模式 paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); //把图片画到矩形去 canvas.drawBitmap(bitmap, null, rect, paint); return roundConcerImage; }在显示图片的时候调用这个方法就好啦!! android2.3.3 内核中nfc驱动问题? 在eclipse中如何运行hello-jni例子 关于短信分组问题 Android 应用程序反应慢 关于布局的问题 Android:如何从网页源码中提取所需要内容? 求助 Makefile --- PRODUCT_LOCALES 关于imageView.setImageResource导致图像失真的问题 cygwin make -v命令报错 怎么写程序实现长按HOME键进行进程切换的功能?进程不重新创建直接恢复运行 android下如何截获蓝牙耳机的按键消息 android studio导入github上的项目的问题?
// 转换圆角为图片
public static Drawable getRoundedCornerDrawable(Drawable drawable) { BitmapDrawable bd = (BitmapDrawable) drawable;
Bitmap bitmap = bd.getBitmap();
int width = bitmap.getWidth() < bitmap.getHeight() ? bitmap.getWidth()
: bitmap.getHeight(); Bitmap output = Bitmap.createBitmap(width, width, Config.ARGB_8888);
Canvas canvas = new Canvas(output); final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, width, width);
final RectF rectF = new RectF(rect);
final float roundPx = width; paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint); drawable = new BitmapDrawable(bitmap);
return drawable;
}
public static Bitmap getRoundCornerImage(Bitmap bitmap, int roundPixels)
{
//创建一个和原始图片一样大小位图
Bitmap roundConcerImage = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
//创建带有位图roundConcerImage的画布
Canvas canvas = new Canvas(roundConcerImage);
//创建画笔
Paint paint = new Paint();
//创建一个和原始图片一样大小的矩形
Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
RectF rectF = new RectF(rect);
// 去锯齿
paint.setAntiAlias(true);
//画一个和原始图片一样大小的圆角矩形
canvas.drawRoundRect(rectF, roundPixels, roundPixels, paint);
//设置相交模式
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
//把图片画到矩形去
canvas.drawBitmap(bitmap, null, rect, paint);
return roundConcerImage;
}
在显示图片的时候调用这个方法就好啦!!