`
xumin_minzi
  • 浏览: 42341 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

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了
分享到:
评论

相关推荐

    OPhone应用开发权威指南(黄晓庆)

    6.1.3 存储至SD卡 227 6.1.4 读取资源文件 228 6.2 SharePreference 229 6.3 SQLite 233 6.3.1 创建数据库 234 6.3.2 SQLiteOpenHelper 236 6.3.3 创建触发器 240 6.3.4 创建索引 241 6.3.5 创建视图 241 6.3.6 操作...

    疯狂Android讲义源码

     1.3.7 使用mksdcard管理虚拟SD卡 19  1.4 开始第一个Android应用 20  1.4.1 使用Eclipse开发第一个  Android应用 20  1.4.2 通过ADT运行Android应用 23  1.5 Android应用结构分析 24  1.5.1 创建一个Android...

    精通ANDROID 3(中文版)1/2

    19.3.7 为整个SD卡触发MediaScanner  19.3.8 参考资料  19.4 小结  第20章 使用OpenGL进行3D图形编程  20.1 了解OpenGL的历史和背景  20.1.1 OpenGL ES  20.1.2 OpenGL ES与Java ME  20.1.3 M3G:另...

    精通Android 3 (中文版)2/2

    19.3.7 为整个SD卡触发MediaScanner  19.3.8 参考资料  19.4 小结  第20章 使用OpenGL进行3D图形编程  20.1 了解OpenGL的历史和背景  20.1.1 OpenGL ES  20.1.2 OpenGL ES与Java ME  20.1.3 M3G:另...

Global site tag (gtag.js) - Google Analytics