DisplayImageOptions对象的使用和".9"图片的冲突问题

最近在编码过程中总是要使用一些商品图片,为了使他们的大小可以一致,我写了个ImageView,用一个正方形的框框的图片作为它的背景,并限制了高宽。同时把图片做成了.9图片。但是因为图片数据是从后台获取的,因此我又使用了DisplayImageOptions,并使用了它的一些关于显示的属性,即

         showImageOnLoading(R.drawable.default_1)       //设置图片在下载期间显示的图片 
        .showImageForEmptyUri(R.drawable.default_1)    //设置图片Uri为空或是错误的时候显示的图片  
        .showImageOnFail(R.drawable.default_1)              //设置图片加载/解码过程中错误时候显示的图片

可是发现图片显示时没有铺满我的商品框。

我的主要代码如下:

public class MyAdapter extends BaseAdapter {

  private List<MyModel> mList;
  private Context mContext; 

  private DisplayImageOptions mOptions;

  public MyAdapter(Context context, List<MyModel> list) {
  this.mContext = context;
  this.mList = list;
  mOptions = new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.default_1)
    .showImageForEmptyUri(R.drawable.default_1).showImageOnFail(R.drawable.default_1).cacheInMemory(true)
    .cacheOnDisk(true).imageScaleType(ImageScaleType.EXACTLY).displayer(new RoundedBitmapDisplayer(0))
    .build();

 }

...}

而代码中的“default_1”这张图片就是一张“.9”图片,于是这张图片的.9的样式就失效,直接等比例拉伸了。

而我们只需要把代码中的红色部分改成下面的代码:

mOptions = new DisplayImageOptions.Builder().cacheInMemory(true).cacheOnDisk(true)
    .imageScaleType(ImageScaleType.EXACTLY).displayer(new SimpleBitmapDisplayer()).build();

  就可以了,当然那我们就没有默认的背景图片,这个就只需要我们在适配器代码里面加一句

  item.mIv.setImageResource(R.drawable.default_1);

就可以了。

 

小贴士:.9图片的制作

在我们的sdk文件夹下面有一个tools->draw9patch.bat,双击打开,再点Enter键,就会出来一个图片制作软件,点击左上方的file,打开一张图片。

把我们希望在适配过程中可以拉伸的区域选中并且保存图片就OK了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值