0

如果我选择大图片,比如来自 Gallery 并尝试在 ImageView 中显示它,ImageView 将不会显示它。

public class ColorViewerActivity extends Activity {

    // SKIP OTHER METHODS

    private static final int SELECT_PHOTO_REQUEST = 100;

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.open_image:
            selectImage();
            break;
        }
        return true;
    }

    private void selectImage() {
        Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
        photoPickerIntent.setType("image/*");
        startActivityForResult(photoPickerIntent, SELECT_PHOTO_REQUEST);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
        super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

        switch(requestCode) { 
        case SELECT_PHOTO_REQUEST:
            if (resultCode == RESULT_OK) {
                Uri imageUri = imageReturnedIntent.getData();
                ImageView imageView = (ImageView) findViewById(R.id.imageView);
                imageView.setImageURI(imageUri);
            }
        }
    }
}

为什么??因为图片太大?

对不起我的英语不好。

谢谢

4

1 回答 1

1

如果您使用超出记忆的巨大图像,它将抛出

java.lang.OutofMemoryError:位图大小超出 VM 预算。

要了解如何有效地显示位图,请查看此链接

于 2013-05-05T04:39:11.837 回答