DisplayImageOptions对象的使用和".9"图片的冲突问题
2015-02-07 11:11
363 查看
最近在编码过程中总是要使用一些商品图片,为了使他们的大小可以一致,我写了个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了。
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了。
相关文章推荐
- IE6下背景图片不缓存问题或者document.execCommand("BackgroundImageCache",false,true)
- 使用dsoframer控件出现"Unable to display the inactive document. Click here to reactivate the document."的问题
- [UIImage imageNamed:@"tab_back"]不显示图片的问题解决
- FileUpLoad选择图片后,直接将图片显示在image中。及IE8本地路径("C:/fakepath/")出现问题的解决方案
- 关于在Java中使用request.getRequestDispatcher(".....")引起的css文件无效或图片无效问题。
- 客户javascript端验证图片文件大小与规格使用Image对象
- ADODB使用excel的"Cannot modify the design of table 'xxxx'. It is in a read-only database"的问题
- Flex使用Weborb与.NET交互的问题:使用DataSet出现"提供的索引超出范围"异常
- 关于网上邻居"此工作组的服务器列表当前无法使用"问题.
- 使用dsoframer控件出现"Unable to display the inactive document. Click here to reactivate the document."的问题
- internet explorer cannot display image picture from google group?我的问题就这么解决了View > Encoding >
- 关于动态控制 input type="image"对象
- 如何解决Mysql "发生系统错误2,找不到指定的文件" 的问题(第一次安装使用)
- MSDN两天没有办法使用, 提示"当前子集中没有该选项,请选择其他子集",问题解决了
- 关于在英创em9161板上使用ADO.net连接远程数据库提示 “无法找到 PInvoke dll"dbnetlib.dll"”问题解决方法
- 关于"Excel._Worksheet和DocEvents_Event之间存在二义性.将使用方法组"的问题
- IIS ,NET中"无法显示 XML 页。 使用 XSL 样式表无法查看 XML 输入。"问题的解决
- 关于String a=new String("a")创建几个对象问题的正确答案
- 使用On Error Resume Next语句,On Error Goto 0语句,Err对象来处理"运行时错误"
- "automation服务器不能创建对象”的问题的解决方案总结大全