我正在处理一个应用程序,我的一个活动是一个屏幕,它抓取我在/ data / application文件夹中创建的文件夹中的所有图像。我想抓住所有照片以网格格式排列,然后当一个人点击一个时,它会把它吹成全尺寸。当然,当新图像添加到文件夹时,此图库需要更改。
似乎这样做有些简单,但我在实现这个方面遇到了一些麻烦我一直在寻找很多不同的解决方案,而这些解决方案看起来并不合适。
我假设它将是某种gridview / listadapter组合。
这个问题的最佳解决方案是什么?
修改
我已经研究过这些解决方案 http://www.androidhive.info/2012/02/android-gridview-layout-tutorial/ http://developer.android.com/guide/topics/ui/layout/gridview.html#example
但我的困惑是像这样的代码
private Integer[] mThumbIds = {
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7
};
我该怎么办,因为我的app文件夹中的图片数量会不断变化。我如何首先从该文件夹中加载图像哈哈
答案 0 :(得分:1)
您是否在Android开发者网站上看到了Caching Bitmaps?我认为它与你想要的东西类似。它还提供了示例的代码。
您最好将图像存储在SD卡内的路径中,因为它们需要动态更改。然后从该路径获取图像路径,使用类似的东西(假设您只在该目录中有图像):
File imagesDir = new File(Environment.getExternalStorageDirectory(), "yourpath");
for (File f : yourDir.listFiles()) {
if (f.isFile())
String image_path = f.getPath();
// make something with the name
}
另外,要从sd中的文件加载位图,请使用以下内容:
Bitmap b = BitmapFactory.decodeFile("your_image_path");
请记住加载位图的缩小版本以提高内存效率。有关详细信息,请参阅here。
希望它有所帮助。