ImageView具有setImageResource方法。什么是getImageResource方法?

时间:2018-08-17 03:37:20

标签: android android-layout android-studio imageview

使用意图单击RecyclerView中的元素,每个元素上都有一个小图像,以转到另一个屏幕/活动,它将显示放大的图片。

例如,Textview具有setTextgetText

ImageView怎么样?他们有setImageResource,但我现在正在尝试获取图像资源

2 个答案:

答案 0 :(得分:1)

没有方法可以给您ImageResource

您可以选中 ImageView source code 。他们只是将您的ImageResource转换为Drawable并使用它。因此,您具有用于Drawable imageView.getDrawable();的getter方法。这是您所能得到的。没有从Drawable对象获取资源ID的方法。

 if (mResource != 0) {
            try {
                d = mContext.getDrawable(mResource);
            } catch (Exception e) {
                Log.w(LOG_TAG, "Unable to find resource: " + mResource, e);
                // Don't try again.
                mResource = 0;
            }
        }

解决方案1 ​​ From ref

如果要将图像传递给另一个活动,可以执行此操作。

当您在Adapter中设置ImageView资源时,在其上设置一个标签。

imageView0.setTag(R.drawable.apple);

现在,当您希望在用户单击时获取该ID时,只需执行

private int getDrawableId(ImageView iv) {
    return (Integer) iv.getTag();
}

解决方案2

如果您是设置ImageView资源的一个,那么您的List中是否会包含此资源整数?因此,当用户单击时,将再次获得资源,如

yourList.get(getAdapterPosition).getImageId();

答案 1 :(得分:1)

您可以以编程方式将第一个ImageView的标签设置为资源ID,然后稍后使用getTag()对其进行检索以将其设置为新ImageView的资源ID。

例如:

//First set your original image tag...
ImageView original; //The original ImageVew
Integer resId = R.drawable.resource; //The original resource
original.setTag(resId); //Add your resource id to the tag

//Then, to get the resource id...
Integer resId = original.getTag();