在Android中拾取画廊图像导致问题

在Android中拾取画廊图像导致问题,android,imageview,android-gallery,Android,Imageview,Android Gallery,我用一个非常简单的代码从图库中选取图像,它在我的手机上工作。 但在三到四部手机(Galaxy S3、平板电脑等)上进行测试,却无法奏效 工作环境: 如果我拍摄的图像大小低于500kb,那么它可以正常工作 ImageView myimg; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContent

我用一个非常简单的代码从图库中选取图像,它在我的手机上工作。 但在三到四部手机(Galaxy S3、平板电脑等)上进行测试,却无法奏效

工作环境: 如果我拍摄的图像大小低于500kb,那么它可以正常工作

ImageView myimg;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Toast.makeText(this, UUID.randomUUID().toString(),
        // Toast.LENGTH_LONG).show();

        myimg = (ImageView) findViewById(R.id.imageView1);

        mybutton = (Button) findViewById(R.id.myButton);
        mybutton.setOnClickListener(this);

    }

    public void onClick(View v) {

        if (v == mybutton) {

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

        }

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode,
            Intent imageReturnedIntent) {
        switch (requestCode) {
        case 0:
            if (resultCode == RESULT_OK) {
                Uri selectedImage = imageReturnedIntent.getData();
                String[] filePathColumn = { MediaStore.Images.Media.DATA };

                Cursor cursor = getContentResolver().query(selectedImage,
                        filePathColumn, null, null, null);
                cursor.moveToFirst();

                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                String filePath = cursor.getString(columnIndex); // file path of
                                                                    // selected
                                                                    // image
                cursor.close();
                // Convert file path into bitmap image using below line.
                Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);

                // put bitmapimage in your imageview
                myimg.setImageBitmap(yourSelectedImage);
            }
        }

    }
它不工作的环境: 如果我拍摄的图像大小或在画廊中的图像大小超过500kb,那么它可以工作

ImageView myimg;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Toast.makeText(this, UUID.randomUUID().toString(),
        // Toast.LENGTH_LONG).show();

        myimg = (ImageView) findViewById(R.id.imageView1);

        mybutton = (Button) findViewById(R.id.myButton);
        mybutton.setOnClickListener(this);

    }

    public void onClick(View v) {

        if (v == mybutton) {

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

        }

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode,
            Intent imageReturnedIntent) {
        switch (requestCode) {
        case 0:
            if (resultCode == RESULT_OK) {
                Uri selectedImage = imageReturnedIntent.getData();
                String[] filePathColumn = { MediaStore.Images.Media.DATA };

                Cursor cursor = getContentResolver().query(selectedImage,
                        filePathColumn, null, null, null);
                cursor.moveToFirst();

                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                String filePath = cursor.getString(columnIndex); // file path of
                                                                    // selected
                                                                    // image
                cursor.close();
                // Convert file path into bitmap image using below line.
                Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);

                // put bitmapimage in your imageview
                myimg.setImageBitmap(yourSelectedImage);
            }
        }

    }
有人告诉过我们如何处理这种情况吗


任何帮助都将不胜感激。

您知道它实际上在哪里“崩溃”吗?它不会崩溃:(这就是问题所在,但在这种情况下,我也看不到图像,根据我的分析,这似乎是尺寸问题。如果是尺寸问题,它会crash@UMAR你知道它是否通过switch语句吗?添加一些
Toast
语句以进行调试。找出它在代码中的位置是一个好的开始。