Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将图像从gallery加载到intent_Android_Image Processing_Android Gallery - Fatal编程技术网

Android 如何将图像从gallery加载到intent

Android 如何将图像从gallery加载到intent,android,image-processing,android-gallery,Android,Image Processing,Android Gallery,我正在尝试从相机或图库加载图像(而不是URL),并将其保存到全局类。(目前我正在尝试获取图像,尚未定义任何类) 所以我认为相机会正确地返回图像,并将其放入包中,如果可能的话,我喜欢对Gallery使用相同的方法 因此,我: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super

我正在尝试从相机或图库加载图像(而不是URL),并将其保存到全局类。(目前我正在尝试获取图像,尚未定义任何类)

所以我认为相机会正确地返回图像,并将其放入包中,如果可能的话,我喜欢对Gallery使用相同的方法

因此,我:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode==RESULT_OK){
        Bundle extras = data.getExtras();
        bmp = (Bitmap) extras.get("data");

    }
} 
这两个选项,很明显我对gallery做了一些错事:

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // TODO Auto-generated method stub
    switch(arg2){
    case 0:
        i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(i, cameraData);
        break;
    case 1:

        Intent intent = new Intent( Intent.ACTION_GET_CONTENT );
        intent.setType( "image/*" );

        //i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(intent, 10); 
        break;
    }
public void onItemClick(适配器视图arg0、视图arg1、内部arg2、长arg3){
//TODO自动生成的方法存根
开关(arg2){
案例0:
i=新意图(android.provider.MediaStore.ACTION\u IMAGE\u CAPTURE);
startActivityForResult(一,cameraData);
打破
案例1:
意图=新意图(Intent.ACTION\u GET\u CONTENT);
intent.setType(“image/*”);
//i=新意图(Intent.ACTION\u PICK,android.provider.MediaStore.Images.Media.EXTERNAL\u CONTENT\u URI);
startActivityForResult(意向,10);
打破
}
我无法传递结果:资源dat上出现空指针异常=content://media/external/images/media/23

所以我想我做错了什么

Idea类似于Instagram中的行为,拍照或选择现有的一个,当选择它时,它应该存储在一些单音对象中,因为在我的应用程序中再次显示图像之前,我还有3个选项可以选择

我不确定这是否是处理图像的最佳方式,所以这里的任何建议都是欢迎的


Tnx

在ActivityResult上,请尝试以下代码

InputStream in = getContentResolver().openInputStream(data.getData());
// get picture size.
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeStream(in, null, options);
in.close();
// resize the picture for memory.
int width = options.outWidth / displayWidth + 1;
int height = options.outHeight / displayHeight + 1;
int sampleSize = Math.max(width, height);
options.inSampleSize = sampleSize;
options.inJustDecodeBounds = false;
in = getContentResolver().openInputStream(data.getData());
// convert to bitmap with declared size.
Bitmap bitmap = BitmapFactory.decodeStream(in, null, options);
in.close();

尽管我在使用三星手机时遇到了一些大问题,但它还是起到了作用,但我在其他方面都做得很好。