public class MainActivity extends AppCompatActivity {
ImageButton[] ib;
int i = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ib = new ImageButton[10];
for (int i = 0; i < ib.length; i++) {
{
String buttonID = "imageButton" + (i + 1);
int resID = getResources().getIdentifier(buttonID, "id", getPackageName());
ib[i] = ((ImageButton) findViewById(resID));
ib[i].setOnClickListener(this);
}
}
}
public void onClick(View v) {
for (int i = 0; i < ib.length; i++) {
if (ib[i].getId() == v.getId()) {
ib[i].setImageResource(R.drawable.img_b);
}
if (ib[2].getDrawable().getConstantState() == getResources().getDrawable(R.drawable.img_b).getConstantState()) {
ib[1].setImageResource(R.drawable.img_c);
}
}
}
}有10个ImageButtons带有‘img_a’。如果我单击其中一个ImageButtons,img_a将更改为img_b。
现在我想添加的是,如果单击ib2或imagebutton2,ib1将更改为img_c。我使用了getDrawable().getConstantState()。它没有错误,但它不工作。有人能帮帮我吗?
发布于 2017-05-03 06:31:47
如果您只需要在单击imagebutton2时应用更改,请执行以下操作
public void onClick(View v) {
for (int i = 0; i < ib.length; i++) {
if (ib[i].getId() == v.getId()) {
ib[i].setImageResource(R.drawable.img_b);
}
}
if (v.getId() = R.id.imageButton2) {
ib[1].setImageResource(R.drawable.img_c);
}
}https://stackoverflow.com/questions/43747638
复制相似问题