使用标准的Android Gallery作为我自己的应用程序的基础

时间:2011-12-09 00:02:34

标签: android gallery mediastore

我正在尝试做一些应该很容易的事情,但我的状态非常糟糕,因为我找不到任何单一的有效答案。

有没有办法获得(或构建)您在所有Android设备中找到的基本图库。简单的扫描SD卡中的所有图片,并在屏幕左右滑动显示它们......

我唯一发现的是HelloGallery;完全没用的Google代码,它将使用基于r.drawable.xxx文件的适配器......

那里有什么相同但基于基于MediaStore的URI吗?

如果这是一个非常愚蠢的问题,感谢和抱歉。

1 个答案:

答案 0 :(得分:0)

这简化了从sdcard扫描图像,获取所有图像uri。你必须创建gallery类及其适配器类。如果你想左右滑动,在适配器类中采取一个布局,两者都是填充父级,并且把图像放在那个布局的中心或给图像填充父母。我评论下面的情况也工作,检查它..

public ArrayList<String> getAllImagesUri(ContentResolver mResolver) {
        ArrayList<String> imagesUris = new ArrayList<String>();
        try{

//      Cursor mCursor = mResolver.query(
//              MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
//              new String[] { MediaStore.Images.ImageColumns.DATA,MediaStore.Images.Media._ID }, null, null,
//              null);
        Cursor mCursor = mResolver.query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[] {MediaStore.Images.Thumbnails.DATA ,MediaStore.Images.Thumbnails._ID }, null, null,
                null);


        startManagingCursor(mCursor);

        if (mCursor.moveToFirst()) {
            do {
                try {
                    imagesUris.add(mCursor.getString(0));
                    imagesIds.add(mCursor.getString(1));
                } catch (Exception e) {
                    e.printStackTrace();
                }
            } while (mCursor.moveToNext());
        }

        }catch (Exception e)
        {

            e.printStackTrace();
            // TODO: handle exception
        }

        return imagesUris;

    }