ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android-无法将图库图片设置为ImageView

2019-12-01 06:24:09  阅读:230  来源: 互联网

标签:image imageview gallery android


我浏览了成千上万的帖子,无法弄清楚为什么我不能使它正常工作.我要做的就是让用户单击一个打开图库应用程序的按钮.然后,用户选择一张图片,该图片会自动关闭图库,然后返回我的应用程序,在该应用程序中它将图像自动设置为ImageView.

到目前为止,我一直在一直使用它,直到返回到我的应用程序为止.看起来一切都很好,但是图像从未显示在ImageView中.

这是ImageView的XML代码:

<ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="14dp"
        android:layout_gravity="center_horizontal" />

在活动开始时,我将ImageView设置为:

 ImageView targetImage;

这是我剩下的代码,以获取图像并将其设置为我的ImageView.有一个按钮可以启动“ setGunImage”.

public void setGunImage(View view) {
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE);
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_PICTURE) {
            targetImage = (ImageView)findViewById(R.id.imageView1);
            Uri selectedImageUri = data.getData();
            targetImage.setImageURI(selectedImageUri);
        }
    }
}

我已经在启用了SD卡的模拟器上以及加载到真实设备中的图像以及真实设备上进行了测试.两者给出相同的行为.它可以顺利通过图库步骤,但是回到我的应用程序时,ImageView中没有图像加载.

我尝试将数据更改为位图并进行设置,但均未显示.我知道这可能是非常简单的事情,以至于我只是看不到所以希望一双新鲜的眼睛可以将我指向正确的方向.谢谢.

解决方法:

我认为Imran解决方案应该可以正常工作…………..您也可以尝试这种方式

 @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            InputStream stream = null;
         if( resultCode==RESULT_OK)
           {
              if(requestCode==SELECT_PICTURE)
               {
                try {
                    // We need to recyle unused bitmaps
                    if (bitmap != null) {
                        bitmap.recycle();
                    }
                    stream = getContentResolver().openInputStream(data.getData());
                    bitmap = BitmapFactory.decodeStream(stream);

                                targetImage = (ImageView)findViewById(R.id.imageView1);
                    targetImage.setImageBitmap(bitmap);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } finally {
                    if (stream != null)
                        try {
                            stream.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                }
            super.onActivityResult(requestCode, resultCode, data);
        }

}

link

标签:image,imageview,gallery,android
来源: https://codeday.me/bug/20191201/2079012.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有