0

アプリに通常のボタンとしてボタンがありますが、背景がカスタマイズされています ( http://www.gersic.com/blog.php?id=56の意味を知るには、これを参照してください)。すべて正常に動作します。ただし、ボタンに別の「押された」バージョンを持たずにボタンを押していることをユーザーに示したいです(ボタンを押すと別の画像を与える方法を知っています)

私は現在 onTouchListner を使用し、ボタンを押して離すときに colorFilters を適用しますが、タッチ モードでプレスとリリースを * 正確に * 検出してもうまくいきませんでした

編集

これが私が望む方法です。

押さない: 押さない

押された (まったく同じ画像ファイル): 押された

colorFilterを使ってハイライト効果をつけました
getBtn.getBackground().setColorFilter(0xFF838B83, PorterDuff.Mode.MULTIPLY);

4

1 に答える 1

0

ボタンのセレクターを作成するだけで、それを背景として設定できますが、クリックするたびにクリック効果が得られます。

<?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="insert color"
                android:endColor="insert color"
                />
            <stroke
                android:width="3dp"
                android:color="insert color" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>



    <item android:state_pressed="false" >        
        <shape>
            <gradient
                android:endColor="insert color"
                android:startColor="insert color"
               />
            <stroke
                android:width="3dp"
                android:color="insert color" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>

この xml ファイルをボタンの背景として設定します。

mybtn.setbackground(R.drawable.thexmlfileabove);
于 2012-08-26T14:46:51.520 に答える