4

押したときにレイアウトの背景を変更したい。レイアウトは必ずしも同じ形ではないので、画像を中央に保つ9パッチの画像を作成しました。私の画像は次のようになります。

ここに画像の説明を入力してください

次に、セレクターxmlは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
 <item 
     android:state_pressed="true" 
     android:drawable="@drawable/my_selector" 
     />
 <item>
     <shape android:shape="rectangle">
         <solid android:color="#00ffffff" />
     </shape>
 </item>
</selector>

私がこのコードを持っていて、私の画像が9パッチではなかったとき、それは塗りつぶすために引き伸ばされました。画像を9パッチに変更しても、画像は通常の.pngファイルとして扱われます。隅やすべてに黒い点があります。

ここに画像の説明を入力してください

画像の9パッチ性が尊重されず、通常の.pngファイルとして扱われているのはなぜだろうと思います。

4

1 に答える 1

4

問題は、画像の下部と右側に2つのドットを使用していることだと思います。彼らのシステムがこれらの2次元の互いに素な領域を処理する方法を知っているかどうかはわかりません。つまり、この画像の「コンテンツ」部分は、右と下の境界にある4つのドットの交点である4つの1ピクセル領域で構成されていると言っています。

それを取り除けば、もっと予想通りに伸びるはずだと思います。

于 2012-09-13T14:59:12.790 に答える