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(...) によって他のテキストを取得し、それ自体を再描画すると、イメージが表示されなくなることです。この LinearLayout の外にある他のビューがサイズを変更して再描画された場合にも、イメージは消えます (たとえば、ズームイン/ズームアウトされた MapView)。// コメントでこの TextView からすべての .setText(...) を設定すると、ImageView からの画像は表示されたままになり、もう消えません。しかし、私はその TextView なしで行きたくありません...私はすでにビューの高さと幅をハードコーディングしましたが、それは役に立ちません。

何か案は ?

編集: テストで見たところ、異なる Text を TextView に設定すると、この TextView の幅が広すぎると、幅が大きくなり (*xml で述べたよりも大きくなります)、画像が消えます。おそらく、回避策が機能し、TextView の幅が広すぎるのを防ぐことができます。Some1は方法を知っていますか?

4

2 に答える 2

1

代わりに .setBackgroundDrawable を試してください

于 2013-08-26T00:01:01.630 に答える