如何使用自定义背景图像制作按钮在Android中显示点击动画

如何使按钮显示它在Android中使用自定义背景图像点击(通过设置它下降/更改)按钮。 我不想包含更多图像,并将不同的图像设置为不同的状态,如google hello视图示例中所示。 谢谢。


使用ColorFilter方法只能处理一个图像文件。 但是,ColorFilter希望能够使用ImageViews而不是Buttons,因此您必须将按钮转换为ImageView。 如果你使用图片作为你的按钮,这并不是一个问题,但是如果你有文本,它会更加恼人......无论如何,假设你找到了解决文本问题的方法,下面是要使用的代码:

ImageView button = (ImageView) findViewById(R.id.button);
button.setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY);

这会在按钮上应用红色覆盖(颜色代码是完全不透明的红色的十六进制代码 - 前两位数字是透明的,然后是RR GG BB)。

通过将sdkfolder / platforms /(android version / data / res / drawable)中的btn_default_normal.9.png文件复制到您自己的项目中,您可以使ImageView看起来像普通按钮。然后在ImageView中使用android:background="@drawable/btn_normal_default"android:src="..."在按钮内设置图像。


你必须使用两个图像来做到这一点。

  • button_normal
  • button_pressed
  • 然后在可绘制文件夹中创建一个xml资源

    <?xml version="1.0" encoding="UTF-8"?>
    
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
    <item android:state_pressed="false"
        android:drawable="@drawable/button_normal" />
    
    <item android:state_pressed="true"
        android:drawable="@drawable/button_pressed" />
    
    </selector>
    

    然后,将此文件设置为imageview的背景。 这里我们使用imageview作为按钮。 不要忘记在可绘制文件夹中包含这两个按钮。 而已。


    您可以创建一个简单的透明黑色图像,并创建一个可绘制的级别列表,通过它可以将透明图像放置在实际图像上。 这产生了推倒的效果。 您可以进一步将它用作如下所示的onclick图像。

    <?xml version="1.0" encoding="utf-8"?>
        <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
            <item android:drawable="@drawable/image">
            </item>
            <item android:drawable="@drawable/transparent_image">
            </item>
        </layer-list>
    </item>
    <item android:drawable="@drawable/image"></item>
    </selector>
    
    链接地址: http://www.djcxy.com/p/96749.html

    上一篇: How to make button with custom background image show click animation in Android

    下一篇: Display all Unicode chars in TextView