Android 使用Vector XML文件创建矢量图片资源,editText监听
1 Android 使用Vector XML文件创建矢量图片资源 2 blog:http://blog.csdn.net/klxh2009/article/details/51121034 3 所需工具: 4 1、阿里巴巴矢量图库(http://www.iconfont.cn/) 5 2、GIMP(GNU Image Manipulation Program) 6 其中,GIMP我提供了两种下载方式: 7 官网:http://www.gimp.org/ 8 百度网盘:http://pan.baidu.com/s/1sl9VnRZ 9 3、Android Studio 10 11 首先vector 标签是一个drawable对象,所以是放在res/drawable目录的。 12 1. 13 <vector android:height="24dp" //控件的宽高,必须设定的选项 14 android:width="24dp" 15 android:tint="@color/icon_huawei_color_click_selector"//取色器icon_huawei_color_click_selector.xml的引用(color selector) 16 android:viewportWidth="96.0" //画布的宽高,必须设定的选项 17 android:viewportHeight="96.0" 18 xmlns:android="http://schemas.android.com/apk/res/android"> 19 <path android:fillColor="#007DFF" android:pathData="M15,46h58.8L45.9,18.1c-1.2,-1.2 -1.2,-3.1 0,-4.2c1.2,-1.2 3.1,-1.2 4.2,0l33,33c0.1,0.1 0.3,0.3 0.4,0.5c0,0.1 0.1,0.2 0.1,0.2c0.1,0.1 0.1,0.2 0.1,0.3c0,0.1 0.1,0.2 0.1,0.3c0,0.1 0.1,0.2 0.1,0.2c0,0.2 0.1,0.4 0.1,0.6l0,0l0,0c0,0.2 0,0.4 -0.1,0.6c0,0.1 0,0.2 -0.1,0.2c0,0.1 -0.1,0.2 -0.1,0.3c0,0.1 -0.1,0.2 -0.1,0.3c0,0.1 -0.1,0.2 -0.1,0.2c-0.1,0.2 -0.2,0.3 -0.4,0.5l-33,33c-1.2,1.2 -3.1,1.2 -4.2,0c-1.2,-1.2 -1.2,-3.1 0,-4.2L73.8,52H15c-1.7,0 -3,-1.3 -3,-3C12,47.3 13.3,46 15,46z"/> 20 </vector> 21 22 附加用法:<path android:fillColor="#00000000" 23 android:pathData="M34.88,48L13.12,25.58" 24 android:strokeColor="#CBCBCB" android:strokeLineCap="round" 25 android:strokeLineJoin="round" android:strokeWidth="4"/> 26 27 2.取色器icon_huawei_color_click_selector.xml,三个状态的颜色(color可以替换成图片drawable): 28 <?xml version="1.0" encoding="utf-8"?> 29 <selector xmlns:android="http://schemas.android.com/apk/res/android"> 30 //按钮可用(响应事件),非按下状态的颜色 31 <item android:color="@color/theme_huawei_color" android:state_enabled="true" android:state_pressed="false"/> 32 //按钮可用(响应事件),按下时的颜色 33 <item android:color="@color/theme_huawei_color_30" android:state_enabled="true" android:state_pressed="true"/> 34 //默认状态下的背景颜色,按钮不可用(不响应事件) 35 <item android:color="#FF0064CC" android:state_enabled="false"/> 36 </selector> 37 38 3.属性介绍: 39 android:state_selected选中 40 41 android:state_focused获得焦点 42 43 android:state_pressed点击 44 45 android:state_enabled设置是否响应事件,指所有事件 46 47 48 49 4、Drawable-Selector 50 android:drawable 放一个drawable资源 51 android:state_pressed 是否按下,如一个按钮触摸或者点击。 52 android:state_focused 是否取得焦点,比如用户选择了一个文本框。 53 android:state_hovered 光标是否悬停,通常与focused state相同,它是4.0的新特性 54 android:state_selected 被选中,它与focus state并不完全一样,如一个list view 被选中的时候,它里面的各个子组件可能通过方向键,被选中了。 55 android:state_checkable 组件是否能被check。如:RadioButton是可以被check的。 56 android:state_checked 被checked了,如:一个RadioButton可以被check了。 57 android:state_enabled 能够接受触摸或者点击事件 58 android:state_activated 被激活 59 android:state_window_focused 应用程序是否在前台,当有通知栏被拉下来或者一个对话框弹出的时候应用程序就不在前台了 60 61 5、通过监听editText变化,来控制button可点击和可用状态 62 mTxtTransEdit.addTextChangedListener(new TextWatcher() { 63 64 @Override 65 public void beforeTextChanged(CharSequence s, int start, int count, int after) { 66 67 } 68 69 @Override 70 public void onTextChanged(CharSequence s, int start, int before, int count) { 71 if (s.length() == 0) { 72 setTxtTransBtnStatus(false); 73 } else { 74 setTxtTransBtnStatus(true); 75 } 76 } 77 78 @Override 79 public void afterTextChanged(Editable s) { 80 setNohistoryState(); 81 } 82 }); 83 84 private void setTxtTransBtnStatus(boolean isEnable) { 85 mRlSend.setEnabled(isEnable); 86 mRlSend.setClickable(isEnable); 87 mtxtTransBtn.setEnabled(isEnable); 88 mtxtTransBtn.setClickable(isEnable); 89 } 90