2016-06-30 12 views
1

イメージボタンの背景として使用するために状態リストを作成しようとしています。Android:状態リストを描画できない

私はこれらのPNGファイルにenter image description here enter image description here

を使用していますし、私の状態リストセレクタは、このようなものです:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/play_button_pressed" android:state_pressed="true" /> 
    <item android:drawable="@drawable/play_button_pressed" android:state_focused="true" /> 
    <item android:drawable="@drawable/play_button_normal" /> 
</selector> 

とイメージボタンは、このようなものです:

<ImageButton 
      android:id="@+id/play_button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:background="@drawable/play_button_bg" 
      /> 

が、クリックすると大きな画像と背景が表示されるので、ボタンは表示されません。何も起こりません。ここで何が間違っていますか?

答えて

0

[OK]を、私はこのような層のリストを状態リストセレクタを使用して、それを解決するために管理:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true"> 
     <layer-list> 
      <item> 
       <bitmap android:src="@drawable/play_button_pressed" android:gravity="center" /> 
      </item> 
     </layer-list> 
    </item> 
    <item android:state_focused="true"> 
     <layer-list> 
      <item> 
       <bitmap android:src="@drawable/play_button_pressed" android:gravity="center" /> 
      </item> 
     </layer-list> 
    </item> 
    <item android:drawable="@drawable/play_button_normal" /> 
</selector> 

トリックは、ビットマップの中にある: アンドロイド:重力=「センター」

0

コードに問題はありません。両方の画像が同じなので、画像ボタンをクリックすると変化しないように見えます。 1つの画像を他のPNGに変更します。ポーズボタンの画像&を試してみてください。また、ImageButtonの代わりにImageViewを使用します。

1

に変更し、それを:ビューに合うように、デフォルトのストレッチによって

<ImageButton 
     android:id="@+id/play_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:scaleType="center" 
     android:src="@drawable/play_button_bg" 
     android:background="@null"/> 

背景。 2つのボタンが変更されているので、最終的な外観はまったく同じです。

「スケールなしの中心」としてソースを使用してスケーリングすると、2つのボタンが変更されます(ただし最終的な効果は期待どおりではありません)。

一般的に、すべてのドロアブルが同じサイズの場合、状態ドロアブルは頭痛を軽減します。

関連する問題