SimpleAdapter 我想用这个,不想重写Adapter 求解决方案。。。。
能不能通过写ListView的布局文件来让图片加载进去就是圆边?
百度了一下,说这样做,我没看懂是怎么传参的。。。
adapter.setViewBinder(new ViewBinder() {
public boolean setViewValue(View view, Object data,
String textRepresentation) {
//判断是否为我们要处理的对象
if(view instanceof ImageView && data instanceof Bitmap){
ImageView iv = (ImageView) view;
iv.setImageBitmap((Bitmap) data);
return true;
}else
return false;
}
});
这两种方案,第一种,就是对获取到的Bitmap进行圆角处理,这种方式已有人回答。第二种,在自定义ListView的Item布局的时候,在要显示ImageView的图片上面再盖一层圆角的外框,就是一张图片,中间是一个圆角的透明矩形。把它覆盖在你的ImageView上面就可以了。这样是最简单的方式,但是要注意最后覆盖上去的图片,边框不透明部分的颜色应与ListView的背景一样,不然看上去很不舒服的。关于第一种方式再说一下,对于位图Bitmap作处理要谨慎,很容易引起内存溢出异常。
// 获得圆角图片的方法
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, float roundPx,float roundPy) {
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, roundPx, roundPy, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
其中roundPx, roundPy用来表示做出的圆角有大
在XML中使用标签来创建一个圆角图片。你也可以使用shape标签定义颜色渐变效果。
这是我之前在自己程序中的一段XML文件,设置的是白色背景,黑色边框和圆角创建的图片。
希望给你帮助。
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffffff"/>
<stroke android:width="3dp"
android:color="#ff000000"
/>
<padding android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp"
/>
<corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp"
android:topLeftRadius="7dp" android:topRightRadius="7dp"/>
</shape>