如何在Android(2.1或更高版本)上获取设备上的所有图像(特别是SD卡)

时间:2011-05-13 23:05:06

标签: android image-processing gallery thumbnails android-sdcard

我在这里遵循了教程:http://androidsamples.blogspot.com/2009/06/how-to-display-thumbnails-of-images.html 以及另一个具有几乎完全相同的代码,并且我在不同设备上处理图像的方式存在一些问题/不一致。

我收集图片的代码是:

private void init_phone_image_grid() {
    String[] img = { MediaStore.Images.Thumbnails._ID };
    Uri uri = MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI;
    imagecursor = managedQuery(uri, img, null,
            null, MediaStore.Images.Thumbnails.IMAGE_ID);
    image_column_index = imagecursor
            .getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
    count = imagecursor.getCount();
    imagegrid = (GridView) findViewById(R.id.PhoneImageGrid);
    imagegrid.setAdapter(new ImageAdapter(getApplicationContext()));
    imagegrid.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView parent, View v, int position,
                long id) {
            System.gc();
            String[] proj = { MediaStore.Images.Media.DATA };
            actualimagecursor = managedQuery(
                    MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj,
                    null, null, null);
            actual_image_column_index = actualimagecursor
                    .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            actualimagecursor.moveToPosition(position);
            String i = actualimagecursor
                    .getString(actual_image_column_index);
            System.gc();
            Intent intent = new Intent(getApplicationContext(),
                    EvidenceImageView.class);
            intent.putExtra("filename", i);
            startActivity(intent);
        }
    });
}

我有一个运行android 2.2的模拟器并且能够创建一个sdcard文件来安装它..我使用adb将一些图像复制到一个文件夹中并重新启动模拟器(我的应用程序最初没有显示任何图像)。重新启动后,我的应用程序中出现了一些图像,但并非全部..然后我打开模拟器附带的Gallery应用程序后,我能够让我的画廊加载所有图像就好了。但是我也有一个HTC thunberbolt,我有照片(在/ sdcard / DCIM / 100MEDIA下) 并且它不会在同一个应用程序中显示任何图像(指的是我正在处理的那个)。我没有将电话连接到计算机上所以我知道我的手机没有问题能够访问SD卡..此外,我已经尝试了我的手机附带的画廊应用程序,我的照片/视频加载得很好.. HTC手机附带的应用程序与香草Android手机附带的应用程序有点不同我相信......这让我想知道系统是不是以同样的方式处理图像..

我是Android开发的新手,并希望这会非常简单..我查看了其他一些应用程序,比如facebook,当我想上传一个htc时它似乎直接进入我提供的画廊照片..也许我可以采取同样的方法(不完全确定如何).. 最终,我希望用户能够选择多个图像并上传所有图像...... 我还找到了android附带的Camera应用程序的源代码:

https://android.googlesource.com/platform/packages/apps/Camera/+/master/src/com/android/camera

这有点有用,但此时要消化的信息很多。

对“这些东西如何运作”的任何解释都会很棒。最重要的是,如何让我的画廊显示所有缩略图(如有必要,创建缩略图)..或者,我如何与系统库交互..

1 个答案:

答案 0 :(得分:1)

  它似乎直接带我进去了   我在htc提供的画廊   想要上传照片..也许我   可以采取同样的方法

这有什么问题:

How to pick an image from gallery (SD Card) for my app?