Button按钮状态背景的设置

Android selector选择器可以让你切换自定义的背景风格,让你的控件或者布局在不同状态下背景切换,背景可以使眼色或者图片资源。


首先,android中的selector要在res/drawable/xxx.xml中配置,比如下面Button的例子:

使用drawable:
  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">    
  3.         <!-- 点击时的背景图 -->  
  4.     <item android:state_pressed="true"    
  5.         android:drawable="@drawable/item_bg_s" />    
  6.     <!-- 获取焦点时的背景图 -->  
  7.     <item android:state_focused="true"    
  8.         android:drawable="@drawable/item_bg_s" />    
  9.     <!-- 默认的背景图 -->  
  10.     <item android:drawable="@drawable/item_bg_n" />    
  11. </selector>   


这个在java代码中的实现方式是:

  1. Integer[] mButtonState = { R.drawable.defaultbutton,    
  2.                 R.drawable.focusedpressed, R.drawable.pressed };    
  3.         Button mButton = (Button) findViewById(R.id.button);    
  4.         mButton.setBackgroundDrawable(myButton.setbg(mButtonState));    
  5.     
  6.         public StateListDrawable setbg(Integer[] mImageIds) {    
  7.                 StateListDrawable bg = new StateListDrawable();    
  8.                 /*默认背景图*/  
  9.                 Drawable normal = this.getResources().getDrawable(mImageIds[0]);    
  10.                 /*选择时的背景图*/  
  11.                 Drawable selected = this.getResources().getDrawable(mImageIds[1]);    
  12.                 /*按下时的背景图*/  
  13.                 Drawable pressed = this.getResources().getDrawable(mImageIds[2]);    
  14.                 /*背景图绑定按钮各个状态*/  
  15.                 bg.addState(View.PRESSED_ENABLED_STATE_SET, pressed);    
  16.                 bg.addState(View.ENABLED_FOCUSED_STATE_SET, selected);    
  17.                 bg.addState(View.ENABLED_STATE_SET, normal);    
  18.                 bg.addState(View.FOCUSED_STATE_SET, selected);    
  19.                 bg.addState(View.EMPTY_STATE_SET, normal);    
  20.                 return bg;    
  21.         }   


使用color:
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  3.         <!-- 选中时的颜色 -->  
  4.     <item android:state_selected="true" android:color="#0FF" />  
  5.     <!-- 获得焦点时的颜色 -->  
  6.     <item android:state_focused="true" android:color="#F0F" />  
  7.     <!-- 点击时的颜色 -->  
  8.     <item android:state_pressed="true" android:color="#FF0" />  
  9.     <!-- 默认的颜色 -->  
  10.     <item android:color="#000" />  
  11. </selector>  

这个方法可以用来设置Button背景的选择效果,也可以用来设置Button上面文字的选择效果。
最后,将设置好的选择器设置到Button的background中去。

也可以为button增加style,如下

  1. <Button  
  2.         android:id="@+id/login"  
  3.         android:layout_width="wrap_content"  
  4.         android:layout_height="wrap_content"  
  5.         android:focusable="true"  
  6.         android:text="按钮"   
  7.         style="@style/ButtonText"/>  

然后在res/values下面定义这个style:
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.     <resources>  
  3.         <style name="ButtonText">  
  4.             <item name="android:layout_width">fill_parent</item>  
  5.             <item name="android:layout_height">wrap_content</item>  
  6.             <item name="android:textColor">#ffffff</item>  
  7.             <item name="android:gravity">center</item>  
  8.             <!-- 阴影风格,如粗体,斜体 -->  
  9.             <item name="android:textStyle">bold</item>  
  10.             <!-- 阴影颜色,这里可以处理阴影,外发光,描边等效果 -->  
  11.             <item name="android:shadowColor">#000000</item>  
  12.             <!-- 阴影x偏移 -->  
  13.             <item name="android:shadowDx">1</item>  
  14.             <!-- 阴影y偏移 -->  
  15.             <item name="android:shadowDy">1</item>  
  16.             <!-- 阴影半径 -->  
  17.             <item name="android:shadowRadius">2</item>  
  18.             <!-- 背景 -->  
  19.             <item name="android:background">@drawable/customer_button_selector</item>  
  20.         </style>  
  21.     </resources>  

如果要为按钮加上渐变,圆角,描边等等,可以将selector结合使用shape,这样就能做出更加酷炫的按钮

shape定义按钮的方法和以上类似,可以定义一个selector结和shape:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <!-- 按下状态 -->  
  4.     <item android:state_pressed="true">  
  5.         <shape>  
  6.             <solid   
  7.                 android:color="#80ff3434" />  
  8.             <padding   
  9.                 android:bottom="10dp"   
  10.                 android:left="30dp"   
  11.                 android:right="30dp"   
  12.                 android:top="10dp" />  
  13.         </shape>  
  14.         </item>  
  15.     <!-- 普通状态 -->  
  16.     <item>  
  17.         <shape android:shape="rectangle">  
  18.   
  19.             <gradient   
  20.                 android:endColor="#ffff1dae"   
  21.                 android:startColor="#ffff79ff"   
  22.                 android:type="linear" />             
  23.             <padding   
  24.                 android:bottom="10dp"   
  25.                 android:left="30dp"   
  26.                 android:right="30dp"   
  27.                 android:top="10dp" />  
  28.         </shape>  
  29.      </item>  
  30.   
  31. </selector>  

源码下载: http://download.csdn.net/detail/zoeice/4420225
### 回答1: Android Button按钮的属性设置包括以下几个方面: 1. 文本属性:可以设置按钮的文本内容、字体大小、字体颜色、字体样式等。 2. 背景属性:可以设置按钮背景颜色、背景图片、边框样式等。 3. 大小属性:可以设置按钮的宽度、高度、内边距、外边距等。 4. 状态属性:可以设置按钮的不同状态下的样式,如按下状态、禁用状态等。 5. 其他属性:还可以设置按钮的点击事件、可见性、透明度等其他属性。 以上是Android Button按钮的属性设置的主要内容,通过设置这些属性可以实现不同样式的按钮效果。 ### 回答2: Android Button按钮)是一种常用的UI组件,它用于在应用程序中添加交互元素。我们可以通过属性设置来定义一个Button的外观和行为。以下是一些常见的Button属性设置: 1. 文本属性 我们可以使用text属性来设置Button上显示的文本内容。我们还可以使用textColor属性来设置文本的颜色。通过设置textSize属性,我们可以改变文本的大小。 2. 背景颜色和背景图案 我们可以使用backgroundColor属性来设置Button背景颜色。我们还可以使用background属性来设置Button背景图案。我们可以通过xml文件来定义Button背景图案。例如,我们可以定义一个shape来设置Button背景色和边框效果。 3. 边框属性 我们可以使用borderWidth属性来设置边框的宽度。我们还可以使用borderColor属性来设置边框的颜色。另外,我们可以用radius属性来设置Button的圆角半径。 4. 状态选择器 我们可以使用state_pressed和state_focused属性来定义Button在不同状态下的效果。例如,当用户按下Button时,我们可以改变Button背景色或文本颜色。我们可以通过selector xml文件定义状态选择器。 5. 点击事件 当用户点击Button时,我们可以为Button添加点击事件。我们可以通过setOnClickListener方法来为Button添加点击事件。当Button被点击时,我们可以执行一些额外的行为。例如,我们可以跳转到另一个Activity或在应用程序中执行某些操作。 总之,Button属性的设置可以让我们定制化自己的UI组件,提高用户体验。通过上述属性设置,我们可以打造各种不同样式的Button,让应用程序更加美观和实用。 ### 回答3: Android Button按钮是指用于触发一个动作或打开一个新的界面的可交互控件,它可以是文本按钮或图像按钮。在开发过程中,设置Button按钮的属性是非常重要的一步,下面我们来详细了解一下Android Button按钮的属性设置。 1. android:id属性:Button按钮在布局文件中需要指定id属性,以便在后台代码中对其进行操作。 2. android:text属性:Button按钮的文本中可以加入字符串或HTML代码,以满足不同需求的视觉效果。 3. android:textSize属性:Button按钮中文本的大小可以通过textSize属性调整。 4. android:textColor属性:用于控制Button按钮文本的颜色。 5. android:background属性:设置Button按钮背景色,可以是颜色值或者是图片的资源文件。 6. android:onClick属性:指定Button按钮触发的事件处理程序,通过使用onClick事件处理程序,可以在Button按钮被点击时执行特定的操作。 7. android:enabled属性:设置Button按钮是否可点击,当设置为false时,Button将不会触发任何事件。 8. android:padding属性:设置Button按钮四周空白区域的大小。 9. android:visibility属性:控制Button按钮是否可见,常用的值包括visible、invisible、和gone。 10. android:layout_width和android:layout_height属性:用于指定Button按钮的宽度和高度。可选值包括match_parent和wrap_content。 以上是常见的Button按钮属性设置,它们可以帮助我们在开发过程中快速搭建出适用于不同移动端设备的用户交互界面。在使用Button按钮过程中,需要注意不同属性的取值范围和其对应的效果,这样才能更好地开发Android应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值