2016-02-16 1 views
4

enter image description here

Я попытался сделать изображение с закругленными углами. Но я столкнулся с некоторыми проблемами. Я не могу сделать круглые углы для всех четырех сторон. Я попробовал этот код

Imageviewclass.class Picasso.with(con).load(itemsArrayList.get(position).get("item_image")).transform(new Resizeimageview()).into(holder.img);

ResizeImageview.classImage View Roundcorner не работает для всех четырех углов

public class Resizeimageview implements Transformation { 
    @Override 
    public Bitmap transform(Bitmap source) { 
     int size = Math.min(source.getWidth(), source.getHeight()); 

     int x = (source.getWidth() - size)/2; 
     int y = (source.getHeight() - size)/2; 

     Bitmap squaredBitmap = Bitmap.createBitmap(source, x, y, size, size); 
     if (squaredBitmap != source) { 
      source.recycle(); 
     } 

     Bitmap bitmap = Bitmap.createBitmap(size, size, source.getConfig()); 

     Canvas canvas = new Canvas(bitmap); 
     Paint paint = new Paint(); 
     BitmapShader shader = new BitmapShader(squaredBitmap, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP); 
     paint.setShader(shader); 
     paint.setAntiAlias(true); 

     float r = size/8f; 
     canvas.drawRoundRect(new RectF(0, 0, source.getWidth(), source.getHeight()), r, r, paint); 
     squaredBitmap.recycle(); 
     return bitmap; 
    } 

    @Override 
    public String key() { 
     return "rounded_corners"; 
    } 
} 

ответ

2

Попробуйте заменить эту линию

canvas.drawRoundRect(new RectF(0, 0, source.getWidth(), source.getHeight()), r, r, paint); 

с этим

canvas.drawRoundRect(new RectF(0, 0, size, size), r, r, paint); 
+0

Это рабочая. огромное спасибо –

0

Попробуйте это:

Download the Universal Image Loader from the given link : 

https://github.com/nostra13/Android-Universal-Image-Loader/wiki/Quick-Setup 

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
      context).build(); 
    // Initialize ImageLoader with configuration. 
    ImageLoader.getInstance().init(config); 

DisplayImageOptions options = new DisplayImageOptions.Builder().displayer(new RoundedBitmapDisplayer(250)).cacheOnDisc().build(); 

ImageLoader.getInstance().displayImage(itemsArrayList.get(position).get("item_image"), holder.img, options);