最近在维护一个项目中,遇到一个问题:如何将默认图设置一个指定半径的圆角。
其实方法非常简单,直接在设置ImageLoader的option上即可实现
方法思路为:用动态new的drawable去替代本地图片
具体代码如下:
Bitmap src = BitmapFactory.decodeResource(context.getResources(),R.drawable.film_vertical_default_bodan );//获取Bitmap图片
RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(context.getResources(), src);//创建RoundedBitmapDrawable对象
roundedBitmapDrawable.setCornerRadius(Float.valueOf(Util.dip2px(context,15)).intValue());//设置圆角半径(根据实际需求)
roundedBitmapDrawable.setAntiAlias(true);//设置反走样
options =new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true)
.showImageOnLoading(roundedBitmapDrawable)
.showImageOnFail(roundedBitmapDrawable)
.showImageForEmptyUri(roundedBitmapDrawable)
.bitmapConfig(Bitmap.Config.ARGB_8888)
.displayer(new RoundedBitmapDisplayer(Float.valueOf(Util.dip2px(context,15)).intValue()))
.imageScaleType(ImageScaleType.EXACTLY)
.build();
备注:Float.valueOf(Util.dip2px(context,15)).intValue() 该方法是将dp单位转换为像素值。
网友评论