2 kprf2009 KPRF2009 于 2012.11.09 00:38 提问

从网上下载的图片,想让图片圆边的显示在Listview里面。。。。

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;    
    }    
}); 

3个回答

niangzhi
niangzhi   2012.11.09 11:37
已采纳

这两种方案,第一种,就是对获取到的Bitmap进行圆角处理,这种方式已有人回答。第二种,在自定义ListView的Item布局的时候,在要显示ImageView的图片上面再盖一层圆角的外框,就是一张图片,中间是一个圆角的透明矩形。把它覆盖在你的ImageView上面就可以了。这样是最简单的方式,但是要注意最后覆盖上去的图片,边框不透明部分的颜色应与ListView的背景一样,不然看上去很不舒服的。关于第一种方式再说一下,对于位图Bitmap作处理要谨慎,很容易引起内存溢出异常。

Sueyexin
Sueyexin   2012.11.09 10:22
// 获得圆角图片的方法
    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用来表示做出的圆角有大

yongyong_21
yongyong_21   2012.11.09 11:34

在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>
yongyong_21
yongyong_21 在drawable文件夹中把图片作为XML保存,然后把imageview的背景设成R.drawable.your_xml_file。
大约 5 年之前 回复
KPRF2009
KPRF2009 亲,告诉我怎么用,怎么用这个xml文件加载图片
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!