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: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>
layout.xml
<?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>

上面这种做法,意味每一个按钮都要定义它的selector,如果按钮很多,这工作量不说,也太繁琐了,现在就碰到一个项目,里面需要单独定义的按钮非常多。
不知各位大侠,有没有想出方便的方案。多谢了

解决方案

可以考虑继承Button或ImageButton做个自定义控件,并在自定义控件中加两个自定义状态图片的属性(如android:focusedBackground,android:pressedBackground),然后就可以直接在界面的XML里写这两个属性,如:

    < com.xxx.xxx.MyImageButton android:id="xxx"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="xxx"
  android:focusedBackground="xxx"
  android:pressedBackground="xxx"
/>

关于自定义控件中如何读取自定义属性,网上有现成的例子资料参考,如:
http://www.cnblogs.com/xiaoQLu/archive/2011/07/20/2112004.html

解决方案二:

可以给按钮一个OnTouchListener 在其中处理....

时间: 2024-09-06 01:23:07

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

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=&q

html5-如何设置两个按钮之间有空格

问题描述 如何设置两个按钮之间有空格 有两个按钮: <button class="btn btn-success navbar-btn btn-sm" type="button" style="float:left">保存</button> <button class="btn btn-success navbar-btn btn-sm" type="button" style

xml-关于安卓设置按钮回退到上一个activity的问题 ,问下大神两种方法的不同。

问题描述 关于安卓设置按钮回退到上一个activity的问题 ,问下大神两种方法的不同. 1.第一种是常规的添加按钮监听,使用finish回退到上一个activit运行成功. 2.查资料后,还有一种解决方式为在xml文件按钮中设置android:onClick=""back"",然后在调用当前xml文件的activity中编写back()方法包含finish()结束当前的activity,自己编写的代码不报错,但是回退到上一个界面是会弹出无法运行界面,然后回退到上一

Android中EditText 设置 imeOptions 无效问题的解决方法_Android

有时候我们需要在EditText  输出完之后 需要在键盘出现 右下角变成"Go"或"前往 搜索时:通常我们需要设置Android:imeOptions属性.Android:imeOptions的值有actionGo. actionSend .actionSearch.actionDone等 但是今天我发现设置了无效  那是因为我设置了 android:maxLines="1" 解决方法 就是去掉 android:maxLines="1"

jQuery Mobile中的button按钮组件基础使用教程_jquery

一.Button 组件及 jQuery Mobile 如何丰富组件样式在 jQuery Mobile 里,可以通过给任意链接添加 data-role="button" 来产生一个 button 组件,jQuery Mobile 会追加一定的样式到链接,值得注意的是,jQuery Mobile 在给组件元素追加样式时不一定只在原有的元素上添加 CSS 和 Javascript 响应,一般还会追加一些新的元素使到组件的样式更接近于原生的 App 组件样式.下面给出一个例子: 这是一个添加了

Android中selector设置

问题描述 Android中selector设置 android中怎么在mainactivity中动态设置textview 字体颜色的selector 解决方案 android 设置selector无效android selector下的设置背景属性值android selector下的设置背景属性值 解决方案二: 做不同的xml文件,动态设置backgroundresourceid

Android中EditText 设置 imeOptions 无效问题的解决方法

有时候我们需要在EditText  输出完之后 需要在键盘出现 右下角变成"Go"或"前往 搜索时:通常我们需要设置Android:imeOptions属性.Android:imeOptions的值有actionGo. actionSend .actionSearch.actionDone等 但是今天我发现设置了无效  那是因为我设置了 android:maxLines="1" 解决方法 就是去掉 android:maxLines="1"

Android Listview中Button按钮点击事件冲突解决办法

  今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录下,以便日后参考.      首先,其实Listview中Button按钮点击事件冲突这种问题压根就不是太大的问题,因为我们完全可以将一个TextView的Backgroud设置成一个selector,也可以将一个TextView设计成一个按钮的样子,这样就可以绕过ListView和Button

Android编程实现设置按钮背景透明与半透明及图片背景透明的方法_Android

本文实例讲述了Android编程实现设置按钮背景透明与半透明及图片背景透明的方法.分享给大家供大家参考,具体如下: Button或者ImageButton的背景设为透明或者半透明: 半透明 复制代码 代码如下: <Button android:background="#e0000000" ... /> 透明 复制代码 代码如下: <Button android:background="#00000000" ... /> 颜色和不透明度 (al