为什么不能在ImageView中显示从移动模拟器存储中选择图片的图片?

时间:2019-02-18 12:52:16

标签: java android android-imageview

 public class MainActivity extends AppCompatActivity {
        private static final int PICK_IMAGE_REQUEST = 1;
        private Button mButtonChooseImage;
        private Button mButtonUpload;
        private TextView mTextViewShowUploads;
        private EditText mEditTextFileName;
        private ImageView mImageView;
        private ProgressBar mProgressBar;
        private Uri mImageUri;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            mButtonChooseImage = findViewById(R.id.button_choose_image);
            mButtonUpload = findViewById(R.id.button_upload);
            mTextViewShowUploads = findViewById(R.id.text_view_show_upload);
            mEditTextFileName = findViewById(R.id.edit_text_file_name);
            mImageView = findViewById(R.id.image_view);
            mProgressBar = findViewById(R.id.progress_bar);

            mButtonChooseImage.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    openFileChooser();
                }
            });

            mButtonUpload.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                }
            });

            mTextViewShowUploads.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                }
            });
        }
        private void openFileChooser(){
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(intent, PICK_IMAGE_REQUEST);
        }

        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if(requestCode == PICK_IMAGE_REQUEST && requestCode == RESULT_OK
                    && data != null && data.getData() != null ){
                mImageUri = data.getData();

                mImageView.setImageURI(mImageUri);

            }
        }
    }

Problem snapshot

↑问题快照,请点击此处。

问题结果空白图片:
problem result empty image

↑黄线是没有显示任何图片的结果。

  

当我从移动存储中选择照片时,无法像上面的图片链接一样在ImageView(mImageView)中显示照片。   请告诉我为什么?

2 个答案:

答案 0 :(得分:0)

我从未尝试将所选图像直接放在ImageView上,但是我已经使用Glide库完成了同样的工作。我建议您使用它。

如何使用滑行将所选图像放入图像视图:

Glide.with(context)
            .load(path)
            .into((ImageView) findViewById(imageViewId));

其中path是选定的图像路径。

答案 1 :(得分:0)

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == requst && resultCode == RESULT_OK && data != null) {
            Uri uri = data.getData();
            try {
                bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
                mImageView.setImageBitmap(bitmap);
              
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }