Android根据Button状态(normal,focused,pressed)显示不同背景图片

 Android中Button 有focused, selected, pressed 等不同状态,通过配置一个XML格式的 drawable "selector" 即可实现”在不同状态下显示不同背景图片“的功能。
1. 在res/drawable目录下添加一个xml文件,用来描述Button在不同状态下对应的不同图片。我这里给该xml文件命名为btn_background.xml
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
           android:drawable="@drawable/btn_pressed"
/>
<!-- pressed -->
<item android:state_focused="true"
           android:drawable="@drawable/btn_normal"
/>
<!-- focused -->
<item android:drawable="@drawable/btn_normal"
/>
<!-- default -->
</selector>

2. 在res/layout目录下,对应的layout xml文件中,将Button的android:background属性设置为btn_background即可。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
>
<Button  
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/btn_background"
/>
</LinearLayout>

3.运行结果

默认状态(unselected)

点击状态(pressed)

时间: 2024-08-30 15:26:52

Android根据Button状态(normal,focused,pressed)显示不同背景图片的相关文章

android按钮-关于设置Android Button按钮状态(normal,focused,pressed)图片,有没有简便的方法

问题描述 关于设置Android Button按钮状态(normal,focused,pressed)图片,有没有简便的方法 Android Button按钮状态(normal,focused,pressed)的图片 大都用drawable "selector" 来实现 类似 btn_background.xml <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:and

firefox和谷歌不显示body背景图片的解决方法

样式如下只有IE可以显示背景图片,火狐和谷歌等浏览器都显示不了,解决方法如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助     复制代码 代码如下: body { background:#F5F5F5 url(../images/a_55.jpg) no-repeat bottom left; margin:0; padding:0; font-family:"微软雅黑", "宋体", Arial, Verdana, sans-serif; font-size:

加快PictureBox显示透明背景图片的速度

问题描述 各位大虾们,请问一下,怎样加快Picturebox加载透明背景图的速度?在VB.net里面,放了20个PictureBox,所用的资源图片都已经加载到工程里,F5运行的时候,Picturebox会闪烁,这个怎么解决?我用过双缓冲Me.DoubleBuffered=True(窗体的Load事件里),可还是闪烁,有什么办法可以解决么? 解决方案 解决方案二:该回复于2011-12-16 09:08:49被版主删除解决方案三:在加载之前调用BeginUpdate,之后调用EndUpdate,

Android app引导页(背景图片切换加各个页面动画效果)

先看效果图: 转自:http://blog.csdn.net/lowprofile_coding/article/details/48037095 1.显示三个页面的Activity  用view pager去加载三个fragment实现,控制点点点的切换,监听view pager的切换,控制fragment动画的开始跟结束,重写了view pager,实现了背景图片的移动效果. /** * 主Activity * @author ansen * @create time 2015-08-07

加载图片顺序-如何让加载网页时,头部和尾部的背景图片先显示?

问题描述 如何让加载网页时,头部和尾部的背景图片先显示? 如:www.willshop.cn首次访问,也就是没有缓存的情况下, 网站的公用头部,导航和尾部,在显示的背景图片时,必须是整个页面的加载完毕才会显示出来,用户体验效果极为不好.如何处理这种情况,从而使得,加载网页时,头部和尾部的图片先显示?谢谢. 解决方案 使用iframe中间部分另外载入,不影响两个图片,但是对于seo有一定影响. 换句话说就可以用js动态加载中间内容,不过有点复杂. 解决方案二: 将你的script加载的文件全部放到

位图-mfc显示透明背景代码看不大懂

问题描述 mfc显示透明背景代码看不大懂 /*-----------------显示透明背景图片-------------------*/ void CHIT_MOUSE::TransparentBitmap(HDC hdc HBITMAP hBitmap short xStart short yStart short xadd short yadd COLORREF cTransparentColor){ BITMAP m_bm; COLORREF cColor; // 创建临时DC HDC

listview-用代码控制ListView的selected/focused/pressed状态

问题描述 用代码控制ListView的selected/focused/pressed状态 是这样的,比如一个音乐播放器的歌曲列表.当我点击某一项时,我希望这首歌播放,然后这一项突出显示(改变字体.背景什么的).当这首歌曲播放结束时,会跳到另一首歌曲,然后我希望播放列表的另一项突出显示.我用的是selector,但是这样只有手动点击时才会突出显示,歌曲改变时不会自动突出显示.有没有什么办法让listview的item获得与手动点击时同样的select效果呢?求解-^_^ 解决方案 android

响应事件-android studio编译无错误,运行时显示,但点击button不响应按键事件

问题描述 android studio编译无错误,运行时显示,但点击button不响应按键事件 原因:自从Android 3.2(API 13),screen size也开始跟着设备的横竖切换而改变.这会导致activity重新加载方法:在AndroidManifest.xml里设置的MiniSdkVersion和 TargetSdkVersion属性大于等于13的情况下,如果你想阻止程序在运行时重新加载Activity,除了设 置""orientation"",你

Android自定义button的实现,未选中,按下,选中效果

package com.test.TestButton; import android.app.Activity; import android.content.Context; import android.graphics.drawable.Drawable; import android.graphics.drawable.StateListDrawable; import android.os.Bundle; import android.view.View; import androi