无法在ImageView上设置图像

时间:2013-12-04 22:50:19

标签: android imageview drawable

我正在尝试通过以下代码为我的布局中的每个ImageView设置一个新图像。它不会产生任何错误。但ImageViews的图片不会改变。

RelativeLayout rl = (RelativeLayout)getLayoutInflater().inflate(R.layout.activity_desert, null);

    int count = rl.getChildCount();

    Log.d("COUNT", "***************************** Child count = " + count);

    for (int i = 0; i < count ; ++i){
        ImageView im = (ImageView)rl.getChildAt(i);
        im.setImageDrawable(getResources().getDrawable(R.drawable.kunefem));
    }

这是我的xml文件内容: activity_desert.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Desserts"
tools:ignore="MergeRootFrame" >

<ImageView
    android:layout_width="180dp"
    android:layout_height="180dp"
    android:id="@+id/image0"
    android:src="@drawable/dessert2"
    android:layout_marginLeft="305dp"
    android:layout_marginTop="65dp"
    android:layout_alignParentLeft="true" />

<ImageView
    android:layout_width="180dp"
    android:layout_height="180dp"
    android:id="@+id/image1"
    android:layout_marginLeft="35dp"
    android:src="@drawable/dessert2"
    android:longClickable="true"
    android:layout_alignTop="@+id/image0"
    android:layout_toRightOf="@+id/image0" />

<ImageView
    android:layout_width="180dp"
    android:layout_height="180dp"
    android:id="@+id/image2"
    android:layout_marginTop="47dp"
    android:src="@drawable/dessert2"
    android:layout_below="@+id/image0"
    android:layout_alignLeft="@+id/image0" />

<ImageView
    android:layout_width="180dp"
    android:layout_height="180dp"
    android:id="@+id/image3"
    android:layout_marginLeft="46dp"
    android:src="@drawable/dessert2"
    android:layout_alignTop="@+id/image1"
    android:layout_toRightOf="@+id/image1"
    android:layout_alignParentStart="false" />

<ImageView
    android:layout_width="180dp"
    android:layout_height="180dp"
    android:id="@+id/image4"
    android:src="@drawable/dessert2"
    android:layout_alignTop="@+id/image2"
    android:layout_alignLeft="@+id/image1" />

<ImageView
    android:layout_width="180dp"
    android:layout_height="180dp"
    android:id="@+id/image5"
    android:src="@drawable/dessert2"
    android:layout_alignTop="@+id/image4"
    android:layout_alignLeft="@+id/image3" />

我很沮丧!请帮忙!

1 个答案:

答案 0 :(得分:2)

请尝试以下代码:

RelativeLayout rl = (RelativeLayout) findViewById(R.id.container);

然后尝试访问该对象的子视图。

编辑:显然这很有用,我很高兴这回答了你的问题!

我想补充一点为什么这有效的解释。在实际从任何layout.xml文件中获取View对象时,必须使用findViewById方法。 LayoutInflater将布局XML文件实例化为其对应的视图对象。很高兴这帮助了你!