首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

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

2012-09-12 
gallery3D 展示指定SD卡图片文件夹问题//调用gallery3d打开指定图片文件夹private void callGallery(Strin

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了

热点排行