Android:通过大量的ImageButton循环

时间:2017-04-05 19:00:32

标签: android graphics

我在代码中将图像应用到我的ImageButtons,但我想知道是否有比我的示例中显示的更好的方法。我当然知道这不是正确的方法,因为它可能会花费太多时间来处理大量的视图。

    btn1.setImageResource(R.drawable.plus);
    btn2.setImageResource(R.drawable.plus);
    btn3.setImageResource(R.drawable.plus);
    btn4.setImageResource(R.drawable.plus);
    btn5.setImageResource(R.drawable.plus);

btn1.setAdjustViewBounds(true);
    btn1.setPadding(0,0,0,0);
    btn2.setAdjustViewBounds(true);
    btn2.setPadding(0,0,0,0);
    btn3.setAdjustViewBounds(true);
    btn3.setPadding(0,0,0,0);
    btn4.setAdjustViewBounds(true);
    btn4.setPadding(0,0,0,0);
    btn5.setAdjustViewBounds(true);
    btn5.setPadding(0,0,0,0);

1 个答案:

答案 0 :(得分:0)

您需要获取活动中的根视图,将其转换为ViewGroup,获取所有子项,检查其类型并相应地进行更新。即如下,

ViewGroup rootView = (ViewGroup) findViewById(android.R.id.content);
int children = rootView.getChildCount();
for (int i = 0; i < children; i++) {
    View view = rootView.getChildAt(i);
    if (view instanceof ImageButton) {
        ((ImageButton) view).setImageResource(R.drawable.plus);
        ((ImageButton) view).setAdjustViewBounds(true);
        ((ImageButton) view).setPadding(0,0,0,0);
    }
}