0

我的应用程序中的按钮作为常规按钮但具有自定义背景(请参阅此以了解我的意思http://www.gersic.com/blog.php?id=56)。一切正常。但是,我想向用户表明他正在按下按钮,而按钮上没有另一个“按下”版本(我知道如何在按下时为按钮提供另一个图像)

我目前使用 onTouchListner 并在按下并清除释放时在按钮上应用颜色过滤器,但在触摸模式下检测到按下和释放 * 准确 * 对我来说不起作用

编辑

这就是我想要的方式。

未按下: 未按下

按下(相同的确切图像文件): 按下

我使用 colorFilter 获得了高光效果
getBtn.getBackground().setColorFilter(0xFF838B83, PorterDuff.Mode.MULTIPLY);

4

1 回答 1

0

you could just create a Selector for your Button, so you can set it as its background but still have a click-effect whenever you click it.

<?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>

set this xml file as your background for your button:

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