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了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值