我必須創建一個加載了來自駐留在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