Android 使recyclerView通过单击recyclerView项从相机或多媒体资料中选择图像
我想将recyclerview的第一个项目设置为带有“添加图像徽标”的“图像视图”,单击该项目后,从“多媒体资料”中选择一个图像,并将其设置为“图像视图”的背景,将第二个项目的背景设置为“添加图像徽标”Android 使recyclerView通过单击recyclerView项从相机或多媒体资料中选择图像,android,android-recyclerview,android-imageview,Android,Android Recyclerview,Android Imageview,我想将recyclerview的第一个项目设置为带有“添加图像徽标”的“图像视图”,单击该项目后,从“多媒体资料”中选择一个图像,并将其设置为“图像视图”的背景,将第二个项目的背景设置为“添加图像徽标” 这可以通过这种方式完成 使用包含图像URL的自定义对象创建ArrayList 仅在ArrayList上添加一个对象 将适配器设置为从ArrayList显示 在回收器视图的绑定视图保持器中,如果url不存在,则显示addimageLogo 然后单击图像,在该位置的对象上添加一个图像(路径/URL)
这可以通过这种方式完成
public class URLContainer{
public URLContainer(String url, String imageName) {
this.url = url;
this.imageName = imageName;
}
String url;
String imageName;// you can use other required properties if you want
}
ArrayList
private ArrayList<URLContainer> images = new ArrayList<>();
默认情况下,您需要将“添加图像”徽标设置为ImageView。在适配器内部,向ImageView添加OnClickListener(),并编写代码以打开图库以获取图像,这将对您有所帮助
override fun getItemViewType(position: Int): Int {
return when (orders[position].viewType) {
ViewType.Button-> 1
ViewType.Image-> 2
else -> 1
}
}
onCreateViewHolder
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val viewHolder: RecyclerView.ViewHolder
when (viewType) {
1 -> {
val buttonBinding = DataBindingUtil.inflate<ItemButtonBinding>(
LayoutInflater.from(parent.context),
R.layout.item_button, parent, false
)
viewHolder = ButtonViewHolder(buttonBinding .root)
}
2 -> {
val imageBinding = DataBindingUtil.inflate<ItemImageBinding>(
LayoutInflater.from(parent.context),
R.layout.item_image, parent, false)
viewHolder = ImageViewHolder(imageBinding .root)
}
else -> {
val imageBinding = DataBindingUtil.inflate<ItemImageBinding>(
LayoutInflater.from(parent.context),
R.layout.item_image, parent, false)
viewHolder = ImageViewHolder(imageBinding .root)
}
}
return viewHolder
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when (holder.itemViewType) {
1 -> {
val buttonViewHolder = holder as ButtonViewHolder
configureButtonViewHolder(buttonViewHolder , position)
}
2 -> {
val imageViewHolder = holder as ImageViewHolder
configureImageViewHolder(imageViewHolder , position)
}
else -> {
val imageViewHolder = holder as ImageViewHolder
configureImageViewHolder(imageViewHolder , position)
}
}
}
将OnClickListener
设置在Button-ItemView中的Button-ViewHolder类中,并将图像选择器意图代码放置在OnClickListener
参考此此问题太宽泛了。可能是重复的,非常感谢,非常有用,但我正在使用java,你能用java编写代码吗
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when (holder.itemViewType) {
1 -> {
val buttonViewHolder = holder as ButtonViewHolder
configureButtonViewHolder(buttonViewHolder , position)
}
2 -> {
val imageViewHolder = holder as ImageViewHolder
configureImageViewHolder(imageViewHolder , position)
}
else -> {
val imageViewHolder = holder as ImageViewHolder
configureImageViewHolder(imageViewHolder , position)
}
}
}