2012-02-21 13 views
3

私は現在、ユーザーインターフェイス用の透明なpngをボタンとして使用するアンドロイドアプリを開発しています。ユーザーは、私が自動的に暗い色に画像内の非透明ピクセルを色付けしたいボタンを押すと自分のボタンの色を変える最も良い方法は?

enter image description here

ボタンは次のようにちょっと見えます。

現在、私は各状態ごとに異なる描画可能なxmlセレクタを使用しています。これは、私がPhotoshopで各画像のいくつかのバージョンを作成する必要があるので、明らかに拡大しません。

すべてのソリューションはありますか? ImageViewのsetColorFilterメソッドを使ってこれを実現できると聞きましたが、完全な説明は素晴らしいでしょう!

ありがとうございます!

答えて

2

セットはかなり良さそうに見えます。こののImageButtonのソースとして画像とxml状態リストを使用してのImageButtonの状態(backgriund)を設定し、私が言う奨めこの

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true"> 
     <shape 
      > 

      <gradient 
       android:startColor="@android:color/background_light" 
       android:endColor="@android:color/darker_gray" 
       android:angle="90"/> 
      <stroke 
       android:width="1dp" 
       android:color="#999999" /> 
      <corners 
       android:radius="9dp"/> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp"/> 

     </shape> 
    </item> 

    <item android:state_focused="true"> 
     <shape> 
      <gradient 
       android:endColor="@android:color/transparent" 
       android:startColor="@android:color/transparent" 
       android:angle="270"/> 
      <stroke 
       android:width="1dp" 
       android:color="#989797" /> 
      <corners 
       android:radius="9dp"/> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp"/> 
     </shape> 
    </item> 

    <item>   
     <shape> 
      <gradient 
       android:endColor="@android:color/transparent" 
       android:startColor="@android:color/transparent" 
       android:angle="90"/> 
      <stroke 
       android:width="1dp" 
       android:color="#999999" /> 
      <corners 
       android:radius="9dp"/> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp"/> 
     </shape> 
    </item> 
</selector> 
+0

のようなものは、しかし、それは私が探しているものではないのですこれは背景を灰色で塗りつぶします。画像の非透明の緑色のピクセルを暗くします。 – monoceres

+0

@monoceres ..今それは本当に厳しい...私はPhotoshopで画像を作成することは一つの方法だと思う..他の方法がある場合はドンノ.. – ngesh

+0

@monoceres ..これらの2つの答えを見てハーンhttp:///stackoverflow.com/questions/1309629/how-to-change-colors-of-a-drawable-in-android ... and http://stackoverflow.com/questions/5702521/android-button-setcolorfilter-behaviour – ngesh

関連する問題