ボタンがあります。ボタンは、StateListDrawable(3つの9パッチイメージで構成されています)から構成されています。ボタンの右側に配置されるドローアブルを追加する必要があり、ボタンの右側に揃える必要があります。私は以下を使おうとしました:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/blue_back_button_drawable" />
<item>
<bitmap android:src="@drawable/filter_by_button_v_mark" android:gravity="right"/>
</item>
</layer-list>
それは機能せず、V画像は確かに右に揃えられていますが、ボタンの右側との違いがあります。スナップショットは次のとおりです。
画像をボタンの左に揃えたいのですが、今できる唯一の方法は次のとおりです。
- 継承ボタン、onLayoutで、幅が設定された後、右端を取得します。
- 背景を描画可能にする(layerDrawable)
- ボタンの幅からv画像の幅を引いたものを計算し、ドローアブルの左マージンとして設定します。
これは恐ろしいことだと言うべきではありません:-)もっと良い方法があるといいのですが。ああ、それが画像の一部ではない理由は、ボタンのテキストによって隠されないようにテキストのパディングを計算できるように、また9パッチのように見栄えが良くないため、幅を知る必要があるためです。