如何设置动态声明的ImageButtons的ImageResource?

时间:2014-01-20 07:57:28

标签: android imagebutton

我有一些动态声明的ImageButtons,这些ImageButtons没有id'并且它们是在LinearLayout中声明的,我想创建一个方法来更改这些资源的图像资源调用时ImageButtons,因为我没有针对这些ImageButtons的预定义ID,我将getChildAt()函数与LinearLayout一起使用,但是getChildAt() }不提供setImageResource(),它只提供setBackgroundResource(),此功能不会替换旧图像,也不适合旧图像,因为它提供了背景不是图片资源,我该怎么办?

这是我的方法代码:

private void my_method(int drawable) {

        int count = Righter.getChildCount(); // Righter is the LinearLayout
        for (int i = 1; i < count; i++) {
            Righter.getChildAt(i).setBackgroundResource(drawable); // here is where i change the background image 
            Righter.getChildAt(i).setClickable(true);
        }

    }

2 个答案:

答案 0 :(得分:6)

getChildAt()返回View。您需要将此View类型转换为ImageButton并调用setImageResource()方法......

    ImageButton imageButton = (ImageButton) linearLayout.getChildAt(0);
    imageButton.setImageResource(R.drawable.btnimage1);

答案 1 :(得分:2)

试试这个

private void my_method(int drawable) {
   int count = Righter.getChildCount(); // Righter is the LinearLayout
   for (int i = 1; i < count; i++) {
       ((ImageButton)Righter.getChildAt(i)).setImageResource(R.drawable.btnimage1);
       Righter.getChildAt(i).setClickable(true);
   }
}

使用ImageButton

输入Righter.getChildAt(i)