9

textviewに基づいてトーストのようなコントロールを作成しようとしていますが、背景として9つのパッチを描画できる場合、textviewの動作が非常に奇妙であることがわかりました。

これはxml定義です:

<by.pplware.view.QuickInfo
    android:id="@+id/quickinfo"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:padding="20px"
    android:textSize="20px"
    android:textStyle="bold"
    android:typeface="serif"
    android:background="#FFFF0000"
/>

これは、背景色のテキストビューです。 ここに画像の説明を入力してください

これは描画可能な背景を持つテキストビューです: ここに画像の説明を入力してください

私が理解しているように、9パッチの背景の場合、Androidはパディングを透明にし、テキストの背景としてのみドローアブルを使用します。しかし、ninepatchの背景で覆われた領域にパディングを含めたいと思います。

この問題の解決策はありますか?

4

1 に答える 1

27

これらのいずれかを試してください:

  1. プログラムではなく、「android:background」xmlプロパティを使用してバックグラウンドninepatchを設定します。これは、XMLで定義されたパディングと連携します。
  2. プログラムで背景を設定する必要がある場合は、背景を設定した後でパディングを再設定してみてください(パディングを設定してから背景を設定すると、ninepatch自体で定義されたパディングがそれを上書きすると思います)。
  3. 問題全体を回避し、ninepatch画像自体にパディング領域を設定するだけです(これが右下の黒いバーです)。
于 2011-01-31T21:20:40.430 に答える