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

发布于 2024-12-20 16:34:12 字数 285 浏览 0 评论 0原文

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

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

我唯一找到的是HelloGallery;完全无用的 Google 代码将使用基于 r.drawable.xxx 文件的适配器...

除了基于 MediaStore 的 URI 之外,是否没有任何东西可以执行相同的操作?

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

I am trying to do something that should be easy enough but I am in really bad shape because I can't find any single valid answer for this.

Is there a way to get (or build) the basic Gallery you find in all Android devices. Something simple that scans for all pictures in the SD card and shows them in the screen sliding left and right...

The only thing I have found is HelloGallery; completely useless Google code that will use an adapter based on r.drawable.xxx files...

Is there nothing out there that does the same but based on a MediaStore based URI?

Thanks and sorry if this is a really dumb question.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

本王不退位尔等都是臣 2024-12-27 16:34:12

这简化了从SD卡扫描图像,获取所有图像uri。您必须创建图库类及其适配器类。如果您想左右滑动,在适配器类中采用一个布局,两者都填充父级,然后放置一张图像在该布局的中心或提供图像来填充父项。我在下面评论了案例也有效,也检查一下..

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;

    }

This simplifies to to scan images from sdcard,get all images uri.You have to create gallery class and its adapter class.if you want to sliding left and right ,in adapter class take one layout with both are fill parent,and put a image in center of that layout Or give images to fill parent.I am commented below case also working,check it also..

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;

    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文