Android 在图像视图中删除背景 属性
Android Remove Background property in Image view
我在 RecyclerView 图像中添加了背景图像高亮:
但是当我单击图像时,还会显示之前选择的图像突出显示。
如何解决这个问题。我的代码是
holder.colorImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.colorImage.setBackgroundResource(0);
for (int i = 0; i < colorId.size(); i++) {
holder.colorImage.setBackgroundResource(R.drawable.image_border);
}
}
});
我从问题中得到的结果是一次显示一张图片。所以它可以很容易地通过将选定的图像位置保存为全局并通知适配器来实现。下面是一个例子。
class LAdater extends RecyclerView.Adapter<LAdater.ViewHolder> {
int selectedPosition;
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(MainActivity.this).inflate(R.layout.item_color, null));
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if (position == selectedPosition) {
holder.colorImage.setBackgroundResource(R.drawable.image_border);
} else {
holder.colorImage.setBackgroundResource(0);
}
}
@Override
public int getItemCount() {
return 9;
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
ImageView colorImage;
public ViewHolder(View itemView) {
super(itemView);
this.colorImage = (ImageView) itemView.findViewById(R.id.imageView);
colorImage.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.imageView) {
selectedPosition = getAdapterPosition();
notifyDataSetChanged();
}
}
}
}
只是一个示例,根据需要修改。
我在 RecyclerView 图像中添加了背景图像高亮:
但是当我单击图像时,还会显示之前选择的图像突出显示。 如何解决这个问题。我的代码是
holder.colorImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.colorImage.setBackgroundResource(0);
for (int i = 0; i < colorId.size(); i++) {
holder.colorImage.setBackgroundResource(R.drawable.image_border);
}
}
});
我从问题中得到的结果是一次显示一张图片。所以它可以很容易地通过将选定的图像位置保存为全局并通知适配器来实现。下面是一个例子。
class LAdater extends RecyclerView.Adapter<LAdater.ViewHolder> {
int selectedPosition;
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(MainActivity.this).inflate(R.layout.item_color, null));
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if (position == selectedPosition) {
holder.colorImage.setBackgroundResource(R.drawable.image_border);
} else {
holder.colorImage.setBackgroundResource(0);
}
}
@Override
public int getItemCount() {
return 9;
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
ImageView colorImage;
public ViewHolder(View itemView) {
super(itemView);
this.colorImage = (ImageView) itemView.findViewById(R.id.imageView);
colorImage.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.imageView) {
selectedPosition = getAdapterPosition();
notifyDataSetChanged();
}
}
}
}
只是一个示例,根据需要修改。