如何使用" setImageURI"将图像从数据库加载到android ImageView中功能?

时间:2018-04-04 08:56:25

标签: android android-recyclerview android-imageview android-glide

我必须在图像视图中设置图像。我使用Glide库在回收器视图中设置图像,现在当我点击回收器视图项时,我想将其设置为另一个活动。

我只是通过意图获取图片网址并将其存储为字符串变量。

final String image = intent.getStringExtra("Image");

然后我尝试使用以下代码行设置图像。

displayImage.setImageURI(Uri.parse(image)); 

注意:displayImage是我的目标imageview。

我可以在这里找到正确的网址。

2 个答案:

答案 0 :(得分:0)

您无法使用setImageURI();

显示来自URL的图片

您需要将网址传递给您的活动,而不是使用Glide

进行展示

使用此

RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(R.drawable.ic_placeholder);
requestOptions.error(R.drawable.ic_error);

Glide.with(this)
     .load(image)
     .apply(requestOptions)
     .into(displayImage);

而不是这个

displayImage.setImageURI(Uri.parse(image)); 

答案 1 :(得分:0)

如果您已在RecyclerView中设置了一次图片,为什么不使用Bitmap中的ImageView。这将节省网络数据和时间。

BitmapDrawable bitmapDrawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = bitmapDrawable.getBitmap();
ByteArrayOutputStream bs = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bs);
intent.putExtra("byteArray", bs.toByteArray()); 
startActivity(intent);

然后是目标活动

if (getIntent().hasExtra("byteArray")) {
            Bitmap bitmap =
                    BitmapFactory.decodeByteArray(getIntent().getByteArrayExtra("byteArray"), 0, getIntent().getByteArrayExtra("byteArray").length);
            imageView.setImageBitmap(bitmap);
        }