android Button 切换背景,实现动态按钮和按钮颜色渐变 一、添加android 背景筛选器selector实现按钮背景改变 1、右键单击项目->new->Others->Android->Android Xml File->next.
2、在 New Android Xml File对话框中的 Resource Type 下拉框中选择Drawable。在File中输入要创建的文件名。 3、在Root Element:中选择 selector(选择器)->next->finish;或者跳过该项选择,可以在生成的xml文件中添加selector的相关代码也是可以的。
4、在生成的xml文件中添加如下代码:
①实现按钮切换后实现按钮背景图片转变。 [html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <selectorxmlns:android="http://schemas.android.com/apk/res/android">
  3. <itemandroid:state_pressed="true"android:color="#00000000"/>
  4. <itemandroid:drawable="@drawable/bt_from1"/>
  5. </selector>
在筛选器中,上述属性的设定是并列关系的(与关系),可以根据下列提供的属性组合出适应不同场合的筛选。根据筛选的条件可以设置不同状态的背景颜色和背景图片。
②实现按钮切换后实现按钮颜色渐变。 [html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <selectorxmlns:android="http://schemas.android.com/apk/res/android">/
  3. <itemandroid:state_pressed="true">//定义当button处于pressed状态时的形态。
  4. <shape>
  5. <gradientandroid:startColor="#8600ff"/>
  6. <strokeandroid:width="2dp"android:color="#000000"/>
  7. <cornersandroid:radius="5dp"/>
  8. <paddingandroid:left="10dp"android:top="10dp"
  9. android:bottom="10dp"android:right="10dp"/>
  10. </shape>
  11. </item>
  12. <itemandroid:state_focused="true">//定义当button获得focus时的形态
  13. <shape>
  14. <gradientandroid:startColor="#eac100"/>
  15. <strokeandroid:width="2dp"android:color="#333333"color="#ffffff"/>
  16. <cornersandroid:radius="8dp"/>
  17. <paddingandroid:left="10dp"android:top="10dp"
  18. android:bottom="10dp"android:right="10dp"/>
  19. </shape>
  20. </item>
  21. </selector>
5、在对布局xml文件中对按钮添加背景属性,背景引入以上创建的xml文件即可实现,动态的按钮背景和颜色。
[html] view plain copy
  1. <Button
  2. android:id="@+id/btn_user_selected"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:background="@drawable/btn_frome1/>
6、背景选择器相关属性 android:state_selected :选中 android:state_focused :获得焦点 android:state_pressed :点击 android:state_enabled :设置是否响应事件,指所有事件 二、在java代码中实现背景切换。 1、针对单个按键实现背景切换 [html] view plain copy
  1. publicbooleanonTouch(Viewv,MotionEventevent){
  2. ButtonupStepBtn=(Button)v;
  3. if(event.getAction()==MotionEvent.ACTION_DOWN){
  4. upStepBtn.getBackground().setAlpha(255);//设置透明背景
  5. }elseif(event.getAction()==MotionEvent.ACTION_UP){
  6. upStepBtn.setBackgroundResource(R.drawable.R.drawable.bt_from1);
  7. finish();
  8. }
  9. returnfalse;
  10. }
通过监听按钮的不同状态来更改按钮的背景图片 public boolean onTouch(View v,MotionEvent event){ } 参数v:事件源对象 参数event:事件封装类的对象,其中封装了触发事件的详细信息,同样包括事件的类型、触发时间等信息。 event.getAction() == MotionEvent.ACTION_DOWN ======>按钮被按下 event.getAction() == MotionEvent.ACTION_UP ======>按钮被释放 2、针对多个按键实现背景切换 [html] view plain copy
  1. privateImageViewIB_1,IB_2;
  2. publicbooleanonTouch(Viewv,MotionEventevent){
  3. if(v==IB_1){
  4. if(event.getAction()==MotionEvent.ACTION_UP){
  5. IB_1.setBackgroundResource(R.drawable.bt_from1);
  6. }else{
  7. IB_1.getBackground().setAlpha(255);//设置透明背景
  8. }
  9. if(v==IB_2){
  10. if(event.getAction()==MotionEvent.ACTION_UP){
  11. IB_2.setBackgroundResource(R.drawable.bt_from2);
  12. }else{
  13. IB_2.getBackground().setAlpha(255);//
  14. }
  15. }
3、设置BUTTON背景为透明 在“一”中使用了在筛选器中设置背景颜色设为透明,在“二”中实现在java中设置背景为透明。接下了,详细说一下透明背景的设置。

1、Button或者ImageButton的背景设为透明或者半透明 ①、半透明<Button android:background="#e0000000" ... /> ②、透明<Button android:background="#00000000" ... /> 理解:颜色和不透明度 (alpha) 值以十六进制表示法表示。任何一种颜色的值范围都是 0 到 255(00 到 ff)。对于 alpha,00 表示完全透明,ff 表示完全不透明。表达式顺序是“aabbggrr”,其中“aa=alpha”(00 到 ff);“bb=blue”(00 到 ff);“gg=green”(00 到 ff);“rr=red”(00 到 ff)。例如,如果您希望对某叠加层应用不透明度为 50% 的蓝色,则应指定以下值:7fff0000 RGB 设置背景图片透明度: View v = findViewById(R.id.content);//找到你要设透明背景的layout 的id v.getBackground().setAlpha(100);//0~255透明度值 设置背景颜色透明度: ImageView.setBackgroundColor(Color.TRANSPARENT);

更多相关文章

  1. android MediaPlayer详解
  2. 使用ProgressBar实现加载进度条
  3. Android中RemoteViews的实现
  4. 【Android开发】背景选择器selector用法心得
  5. android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
  6. Android实现朋友圈多图显示功能
  7. Android防止快速重复点击
  8. Android实现图片缩放与旋转
  9. Android(安卓)Service总结06 之AIDL

随机推荐

  1. android销毁Activity和被系统销毁时的数
  2. 【按键】灭屏后瞬间按返回键,可以点亮屏幕
  3. Shape属性详解
  4. android关于获取手机唯一码的组合文章
  5. 【android】get PatchStore::createDisab
  6. Android软键盘手动显示、隐藏、布局上移
  7. Android(安卓)TableLayout表格布局
  8. Android aapt 工具介绍(转载)
  9. Android 下载文件 显示进度条
  10. 时钟控件布局