读书人

gallery3D 展示指定SD卡图片文件夹有关

发布时间: 2012-09-12 09:21:30 作者: rapoo

gallery3D 展示指定SD卡图片文件夹问题
//调用gallery3d打开指定图片文件夹
private void callGallery(String path, int type, String title)
{
Uri uri = Images.Media.INTERNAL_CONTENT_URI;
uri = uri.buildUpon()
.appendQueryParameter("bucketId", getHashcode(path)).build();
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.putExtra("windowTitle", title);
intent.putExtra("mediaTypes", type);
startActivity(intent);
}
private String getHashcode(String path)
{
return String.valueOf(path.toLowerCase().hashCode());
}

gallery3D是在cacheService中处理
首先将数据库中的路径加载到缓存当中,然后把缓存中的数据放到DataInputStream中处理,这是有问题,因为DataInputStream.writelong写会出问题的,我改成用一个list存起来,在writeSetsToCache方法中, 将dos.writeLong(set.mId);
改成buckidList.add(set.mId);
Utils.writeUTF(dos, set.mName);
改成map.put(i, set.mName);map是新增的一个全局变量来保存name的,因为dos.writeUTF会报异常,google这个地方应该没有好好测试

加载的时候在loadMediaSet方法中, 将final long setId = dis.readLong();改成
final long setId = buckidList.get(i);

mediaSet.mName = Utils.readUTF(dis);改成mediaSet.mName = map.get(i);
这样就ok了

读书人网 >移动开发

热点推荐