当重新绘制某些内容时,ImageView图像会消失

时间:2013-08-25 23:25:37

标签: android android-imageview

我在LinearLayout中有一个TextView和一个ImageView:

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="72sp"
    android:orientation="horizontal"
    android:keepScreenOn="true" >

    <TextView
        android:id="@+id/instructionView"
        android:layout_width="245sp"
        android:layout_height="70sp"
        android:textSize="18sp" />

    <ImageView 
        android:contentDescription=""
        android:id="@+id/ma_landmarkView"
        android:layout_width="70sp"
        android:layout_height="70sp"
        android:layout_gravity="right" />

</LinearLayout>

在我的代码中,我使用

将不同的图像设置为ImageView(所有68x68像素大小)
myView.setImageDrawable(this.getResources().getDrawable(
            R.drawable.mypicture));

现在的问题是,如果TextView通过.setText(...)获取其他Text并重绘自身,则不会再看到Image。如果此LinearLayout外的其他视图更改其大小并重新绘制(例如已放大/缩小的MapView),则图像也会消失。 如果我在注释//中从此Te​​xtView设置所有.setText(...),则ImageView中的图片将保持可见状态并且不再消失。 但我不想没有那个TextView ...... 我已经硬编码了视图的高度和宽度,但这没有用。

任何想法?

修改 我刚刚在测试中看到,通过将不同的Text设置为TextView,它可以获得更大的宽度(甚至比我在* xml中所说的更大)如果此TextView变得太宽,则Image会消失。也许解决方案可以解决问题,这可以防止TextView变得过宽。 Some1知道怎么做?

2 个答案:

答案 0 :(得分:1)

尝试使用.setBackgroundDrawable

答案 1 :(得分:0)

您应该将不同视图的单位更改为dp而不是sp。 sp通常用于实际文本大小。因此,基本上将layout_width和layout_height更改为使用dp单位,并将textSize保持为sp单位。

请更改这些并重新运行您的应用程序,如果这改变了结果,请告诉我。如果它不起作用,请添加一些Java代码,以便我可以更好地分辨出问题所在。