以编程方式添加视图,添加按钮后单击更改视图背景



在LinearLayout中动态添加视图,添加视图后,单击按钮更改任何视图背景。

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width, height);
ImageView img1 = new ImageView(this);
img1.setLayoutParams(layoutParams);
img1.setImageBitmap(icon);
llLayout.addView(img1);
ImageView img2 = new ImageView(this);
img2.setLayoutParams(layoutParams);
img2.setImageBitmap(icon);
llLayout.addView(img2);
ImageView img3 = new ImageView(this);
img3.setLayoutParams(layoutParams);
img3.setImageBitmap(icon);
llLayout.addView(img3);   

在按钮上,单击更改所有图像视图背景或特定的图像视图。

注意:llLayout是我的线性布局,此布局添加在XML 中

当您将imageView添加到线性布局中时,此时您是imageView的setImageBitmap

如果要将图像重置为Imageview,则应使用img1.setImageResource

btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//use anyone as your requirement
img1.setBackgroundResource(); // for set background resource from drawable folder(for src)
img1.setBackground();// for set background(Drawable)(for background)
img1.setBackgroundColor(); //for set background color(for background)

}
});

我不确定我是否正确理解这个问题,但如果你的意思是用按钮上的onClick事件更改特定的图像背景。。如果您有图像参考,请更改它。。但是,如果你的意思是,你正在像循环内部那样动态添加图像视图,而你没有引用,你可以创建数组列表并将添加的图像添加到其中,然后在这个数组列表上循环以更改所有图像的背景或过滤你想更改的特定图像

最新更新