当前位置:编程学习 > wap >>

如何将手机里面所有图片都已gallery的形式显示(主意是所有)

鄙人不才,是安卓开发新手,最近遇到一个问题,如下:
目标要求:点击自己开发的应用,能够自动获取本地图库(也就是获取手机里面的图片),并且以gallery的形式显示。

获取本地图库不难,可是都已gallery显示,小弟确实不知道怎么办。
为这个问题在网上找了很多资料,也看了很多别人编写的代码,可是发现几乎所有的gallery例子都是直接把图片的Id存放在一个数组当中,然后再利用gallery显示。这对于普通需求是足够,但是我本人觉得实际应用中手机里面的图片有成百上千张,难道真要在文件中添加几千个Id?  还是获取图片地址存在数据库中?如果这样,那又怎么以gallery方式显示呢?

求大虾们支点招,推荐文章,或者给建议都行,当然给代码参考最好了(绝不奢望),希望大家指条路,在此不胜感激!

--------------------编程问答-------------------- --------------------编程问答-------------------- 可以读取手机某个文件夹下的图片资源 然后 使用bitmap来给ImageView的getView() 这样就能读取文件目录下的图片到gallery了 --------------------编程问答-------------------- 假设本地图库比较大,图片有几千张,可以用sqlite数据库,用一个表保存全部图片的路径地址。gallery每次只显示50个图片左右,利用sqlite数据库实现类似翻页的功能,每次翻页显示50个图片。
图片显示用ImageView i = new ImageView(mContext);
if (imgs[position] != null && !imgs[position].equals("")) {
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
File f = new File(imgs[position]);
if (f.length() < 20480) { // 0-20k
opt.inSampleSize = 1;
} else if (f.length() < 51200) { // 20-50k
opt.inSampleSize = 2;
} else if (f.length() < 307200) { // 50-300k
opt.inSampleSize = 4;
} else if (f.length() < 819200) { // 300-800k
opt.inSampleSize = 6;
} else if (f.length() < 1048576) { // 800-1024k
opt.inSampleSize = 8;
} else {
opt.inSampleSize = 10;
}
bitmap = BitmapFactory.decodeFile(imgs[position], opt);
i.setImageBitmap(bitmap); --------------------编程问答-------------------- 虽然这个问题自己解决了,但是楼上的朋友的建议对我也有帮助,非常感谢! --------------------编程问答-------------------- 如何解决的呢?
补充:移动开发 ,  Android
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,