如果已从图库

时间:2017-03-30 19:57:04

标签: android android-studio

我在imageview后面有一个textview:Click to add an image

当用户点击时,它将打开图库。如果用户选择图像,它将显示在图像视图中。

如果选择了图片,我想将textview文本设置为空白。

我点击了在imageview内部尝试:

        Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(galleryIntent, RESULT_LOAD_IMAGE);
        ImageViewText.setText("");

这里的问题是用户点击imageview时textview将是空白的。如果用户真的选择了图像,我想要的是重置它。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

当您使用startActivityForResult()时,如果成功选择imageUri,您将以onActivityResult()方式从Intent获取图片路径image

添加条件以检查RESULT_OKREQUEST_CODE。如果true同时将image设置为imageView并设置textViewblank("")或将可见性更改为GONEINVISIBLE。< / p>

试试这个:

@Override
protected void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);

    if (resultCode == RESULT_OK) {
        if (requestCode == REQUEST_CODE) {
            try {
                final Uri imageUri = data.getData();
                final InputStream imageStream = getContentResolver().openInputStream(imageUri);
                final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);

                // Set image 
                imageView.setImageBitmap(selectedImage);
                // Set text
                textView.setText("");

                // Alternative
                // textView.setVisibility(View.GONE); or
                // textView.setVisibility(View.INVISIBLE);

            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }

        }
    } 
}

希望这会有所帮助〜

答案 1 :(得分:1)

由于您使用的是startActivityForResult,因此应该重写onActivityResult方法。您可以检查用户是否实际选择了可以调用setText(&#34;&#34;)或最好是setVisibility(View.GONE)的内容