使用意图单击RecyclerView
中的元素,每个元素上都有一个小图像,以转到另一个屏幕/活动,它将显示放大的图片。
例如,Textview
具有setText
和getText
。
ImageView
怎么样?他们有setImageResource
,但我现在正在尝试获取图像资源
答案 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();