0

我在 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 并重绘自身,则不再显示图像。如果此 LinearLayout 之外的其他视图更改其大小并重新绘制(例如,已放大/缩小的 MapView),图像也会消失。如果我在评论// 中将此 TextView 中的所有 .setText(...) 设置,则 ImageView 中的图片将保持可见并且不再消失。但是我不想没有那个 TextView ......我已经硬编码了 Views 的高度和宽度,但这并没有帮助。

有任何想法吗 ?

编辑: 我刚刚在测试中看到,通过为 TextView 设置不同的文本,它可以获得更大的宽度(甚至比我在 *xml 中所说的更大),如果这个 TextView 变得太宽,图像就会消失。也许解决方案有效,可以防止 TextView 变得太宽。Some1知道怎么做吗?

4

2 回答 2

1

尝试 .setBackgroundDrawable 代替

于 2013-08-26T00:01:01.630 回答
0

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

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

于 2013-08-26T03:19:02.503 回答