gpt4 book ai didi

android - 如何动态显示 SD 卡中文件夹中的图像

转载 作者:行者123 更新时间:2023-11-30 04:43:49 26 4
gpt4 key购买 nike

我必须创建一个 gridview,其中加载了位于 SDCard 上的特定文件夹中的图像。该文件夹的路径是“/sdcard/images/”。我试过这个代码,这个应用程序 加载时间太长,而且只显示一张图片。

    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;
}

该应用程序花费了太多时间,而且它只显示一张图片

这是我的 Activity 课

      public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImAdapterh(this));}

最佳答案

The path to the folder is "/sdcard/images/".

不,不是,至少对于大多数设备而言不是。永远不要在 Android 中硬编码路径。始终使用 Environment.getExternalStorageDirectory() 获取外部存储的根目录。

i tried with this code,the app is taking too much time to load and it is displaying only one image.

当然。您在这里所做的几乎没有什么是正确的。

最大的问题是您的getView()每个 图像加载到同一个ImageView 中,对于您的适配器。据推测,对于给定的行,您应该只将 一个 图像加载到 ImageView 中。

您的下一个最大问题是您正在主应用程序线程上执行磁盘 I/O。

关于android - 如何动态显示 SD 卡中文件夹中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5471222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com