我必须创建一个加载了来自驻留在SDCard上的特定文件夹中图像的gridview。该文件夹的路径是“/ sdcard/images /”。我试着用这个代码,应用程序 需要太多时间来加载,它只显示一个图像。如何从SD卡中的文件夹动态显示图像
public class ImAdapterh extends BaseAdapter{
File dir=new File(Environment.getExternalStorageDirectory(),"/myImages/");
int count=dir.list().length;
String[] fileNames = dir.list();
private Context mContext;
public ImAdapterh(Context c) {
mContext = c;
}
public int getCount() {
return count;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = null;
for(String bitmapFileName : fileNames)
{
if (convertView == null)
{ // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
Bitmap bmp = BitmapFactory.decodeFile(dir.getPath() + "/" + bitmapFileName);
System.out.println(dir);
imageView.setImageBitmap(bmp);
}else
{
imageView = (ImageView) convertView;
}
}
return imageView;
}
应用程序被占用太多的时间,它是只显示一个图像
,这是我的活动类
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImAdapterh(this));}
@Kishore:我没有“样本代码”用于加载一个目录满图像,为'AdapterView'。然而,这里是我的一本书的免费摘录,其中介绍了如何将图像放入'ListView'行,这可能有所帮助:http://commonsware.com/Android/excerpt.pdf – CommonsWare 2011-03-31 12:07:35
Ware有没有其他方法调用“getExternalStorageDirectory ()“,在应用程序中支持Api 1.5+ – Kishore 2011-05-25 09:38:29
@Kishore:'getExternalStorageDirectory()'自从Android 1.0(API Level 1)以来就已经存在。 – CommonsWare 2011-05-25 10:38:17