Android图像的简单列表(如gallery)
我需要用图像制作ListView;图像存储在SD卡上,我需要使用URI加载它。这对我来说不是问题。但存在以下问题:我在drawable中添加了10个图像,并为ListView制作了简单的适配器:Android图像的简单列表(如gallery),android,Android,我需要用图像制作ListView;图像存储在SD卡上,我需要使用URI加载它。这对我来说不是问题。但存在以下问题:我在drawable中添加了10个图像,并为ListView制作了简单的适配器: private class PointImagesAdapter extends ArrayAdapter<Integer> { private static final int LAYOUT_ID=R.layout.adapter_point_images; pri
private class PointImagesAdapter extends ArrayAdapter<Integer> {
private static final int LAYOUT_ID=R.layout.adapter_point_images;
private Integer[] ii;
private LayoutInflater inflater;
private List<ImageInfo> images;
public PointImagesAdapter(Integer[] ii) {
super(MainActivity.this, LAYOUT_ID, ii);
this.ii=ii;
inflater=LayoutInflater.from(MainActivity.this);
}
@Override
public View getView(int position, View view, ViewGroup group) {
if (view==null) {
view=inflater.inflate(LAYOUT_ID, null);
}
ImageView i=(ImageView)view.findViewById(R.id.adapterPointImagesItem);
i.setImageResource(ii[position]);
return view;
}
}
私有类PointImagesAdapter扩展了ArrayAdapter{
私有静态最终整数布局\u ID=R.LAYOUT.adapter\u point\u图像;
私有整数[]ii;
私人充气机;
私有列表图像;
公共点ImagesAdapter(整数[]ii){
超级(主要活动,本,布局图,ii);
这.ii=ii;
充气器=从(MainActivity.this)开始的充气器;
}
@凌驾
公共视图getView(内部位置、视图视图、视图组){
如果(视图==null){
视图=充气机。充气(布局标识,空);
}
ImageView i=(ImageView)view.findViewById(R.id.adapterPointImagesItem);
i、 setImageResource(二[职位]);
返回视图;
}
}
它可以工作,但所有图像都有一个大的分辨率(2048x1536),并且ListView的滚动速度非常慢:
<ListView
android:id="@+id/dialogViewImagesList"
android:layout_width="100dip"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:cacheColorHint="@android:color/transparent"
android:fastScrollEnabled="true"
android:persistentDrawingCache="scrolling"
android:scrollingCache="false" >
</ListView>
我认为这个问题是个大问题。我怎样才能修好它?谢谢 1st:您可以以位图的形式提取图像。 第二:将位图转换为缩小尺寸的缩放位图
Bitpmap bm = BitmapFactory.decode ("image file path");
bm.setDensity(integer);
Bitmap bm1 = Bitmap.createScaledBitmap (bm, width, height, false);
ImageView i=(ImageView)view.findViewById(R.id.adapterPointImagesItem);
i.setImageBitmap(bm1);
这将在运行时从内部减小要在listView中显示的图像的大小 。检查主题“在内存中加载缩小的版本”