首页 新闻 会员 周边 捐助

异步加载网络图片,如何获得加载后的图片,用以设置ListView的Item的高度

0
悬赏园豆:100 [已关闭问题] 关闭于 2015-11-08 13:07

用ListView显示图片列表,每个Item放一张图片,图片宽大于高,且宽比屏幕大,
因此,宽度会自适应屏幕缩小到屏幕宽,图片高度也正常等比例缩小。
但是,ListView的Item的高度却要比图片大。

如果图片在本地中,可以获得图片的宽高值和屏幕的宽度值,因此可以用 (屏幕的宽/图片的宽) 值作为缩小比例,乘以图片的高,获得当前图片高度值,然后设置ListView的Item的高,这样,显示效果就正常了。

但是,如果是异步加载网络图片呢?我应该在什么时候可以获得加载完的图片资源?

 

本地的处理方式如下:

@getView of BaseAdapter
 

private final int[] pictures = {
R.drawable.photo1,R.drawable.photo2,R.drawable.photo3,
R.drawable.photo4,R.drawable.photo5,R.drawable.photo6};

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), pictures[position]);
DisplayMetrics dm =newDisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels ;
if (screenWidth < bitmap.getWidth()){
    AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
                                    LinearLayout.LayoutParams. MATCH_PARENT,
                                    //横向适应屏幕宽度,那么,竖向就应该同比例缩放
                                    (int)(((float)screenWidth/(float)bitmap.getWidth())*bitmap.getHeight()));
    convertView.setLayoutParams(lp);
}
Jimwind的主页 Jimwind | 菜鸟二级 | 园豆:204
提问于:2015-11-08 12:09
< >
分享
所有回答(1)
0

fixed

Jimwind | 园豆:204 (菜鸟二级) | 2015-11-08 13:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册