Android_去掉EditText控件周圍橙色高亮區域

先來看看默認的EditText控件效果:

布局就是一個Activity里就放了一個EditText控件,可以看到四周有橙色的高亮區域

處理後的效果:

接下來簡單描述下處理過程:

1,查看EditText這個類的源碼

    public EditText(Context context, AttributeSet attrs) {this(context, attrs, com.android.internal.R.attr.editTextStyle);}

在其構造方法里默認使用了系統定義的風格 com.android.internal.R.attr.editTextStyle

2,找到這個定義的屬性:

在android源碼的\frameworks\base\core\res\res\values路徑下找到attrs.xml文件,打開找到:

        <!-- Default EditText style. --><attr name="editTextStyle" format="reference" />

找到了源碼中引用的系統定義的風格,但這裡啥都木有(一開始找到這,不知道format="reference"代表啥,在此感謝一個神奇的網站:stackoverflow)

接着找到這個<attr .... >的根節點

<!--根元素-->
<declare-styleable name="Theme"><!-- n個attr及其他標籤--><!-- Default EditText style. --><attr name="editTextStyle" format="reference" />......</.....>

根節點的name為"Theme",接着就是要找到name="Theme"的style

(也就是說format="reference"表示EditText控件所默認使用的com.android.internal.R.attr.editTextStyle資源定義在name="Theme"中,即後者被前者引用)

3, 找到name="Theme"的style:

attrs.xml所在路徑下有很多系統定義的資源,打開themes.xml, 在name="Theme"的style節點下可以看到:

<item name="editTextStyle">@android:style/Widget.EditText</item>

4,ok, 繼續,打開同路徑下styles.xml文件,內牛滿面,引用了半天,終於找到了

    <style name="Widget.EditText"><item name="android:focusable">true</item><item name="android:focusableInTouchMode">true</item><item name="android:clickable">true</item><item name="android:background">@android:drawable/edit_text</item><item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item><item name="android:textColor">@android:color/primary_text_light</item><item name="android:gravity">center_vertical</item></style>

我們要去掉高亮區域,其實也就是換背景(後面就清楚的看到),與之相關的屬性自然是

<item name="android:background">@android:drawable/edit_text</item>

5,回到frameworks\base\core\res\res目錄,在drawable文件夾下找到edit_text.xml文件

<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_window_focused="false" android:state_enabled="true"android:drawable="@drawable/textfield_default" /><item android:state_window_focused="false" android:state_enabled="false"android:drawable="@drawable/textfield_disabled" /><item android:state_pressed="true" android:drawable="@drawable/textfield_pressed" /><item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_selected" /><item android:state_enabled="true" android:drawable="@drawable/textfield_default" /><item android:state_focused="true" android:drawable="@drawable/textfield_disabled_selected" /><item android:drawable="@drawable/textfield_disabled" />
</selector>

這下應該很清楚了,在selector中定義了N多item表示N多狀態,看後面android:drawable="...."所引用的圖片資源,有好幾種

這裡我先貼兩張系統內部使用的圖片:

@drawable/textfield_default

@drawable/textfield_selected

@drawable/textfield_disabled_selected

之所以這麼小,因為是.9圖片,俗稱9妹

一目了然,所以上面說橙色高亮區域是有點不準確的,因為其實就是根據狀態來切換背景圖片而已

哪有什麼高亮,橙色本來就是圖片的一部分(哎,語文太差, 描述不好)

這個東西挖到這,應該是挖到祖墳了,只要重寫一個背景xxx.xml供android:background屬性調用即可:

<selector xmlns:android="http://schemas.android.com/apk/res/android" ><item android:state_pressed="true"

Android去掉EditText控件周圍橙色高亮區域【属性文件位置】相关推荐

  1. Android中EditText控件的Ime Options属性

    EditText是Android的常用编辑控件,当它的android:singleLine设置为true时,就会显示软键盘. 如果一个layout中有多个EditText,且都设置android:si ...

  2. android 中edittext控件 输入错误后焦点不变_常用基本控件测试用例(二)

    日期控件文本框的测试 1. 正常操作 1)有默认项还是没有. 2)选择日期后是否正确回显到页面上,并且格式正确 3)通过左右按钮进行年和月的选择,是否正确: 4)通过下拉框直接选择年和月,是否正确: ...

  3. Android EditText控件使用

    0 本文主要涉及 Android EditText控件的一些实际使用中的需求实现. 1 隐藏默认样式 去除框样式 设置属性 android:background="@null" 去 ...

  4. android的属性如何使用方法,Android第二大控件,EditText的属性和使用方法

    原标题:Android第二大控件,EditText的属性和使用方法 EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法.EditText与TextVi ...

  5. Android EditText控件

    1. 常用属性 EditText控件用于获取用户的输入.EditText类继承TextView类,能使用TextView的所有常用属性.可参考Android TextView控件. 属性 说明 and ...

  6. android卡片风格,[Android] Android 卡片式控件CardView的优雅使用

    [Android] Android 卡片式控件CardView的优雅使用 CardView是在安卓5.0提出的卡片式控件 其具体用法如下: 1.在app/build.gradle 文件中添加 comp ...

  7. EditText控件的基本使用(点击Button按钮,Toast提示EditText中的内容)

    EditText是程序用于和用户进行交互的另一个重要控件,它允许用户在空间里输入和编辑内容,并可以在程序中对这些内容进行处理.EditText的应用场景非常普遍,在进行发短信.发微博.聊QQ等操作时, ...

  8. android md 控件,Android基本UI控件.md

    # Android基本UI控件 ## *TextView 文本框* ### TextView常用用法 | 主要方法 | 功能描述 | | :----------: | :--------------- ...

  9. android按钮控件常见问题,Android的基本控件和Activity的应用总结

    Android的基本控件 常用界面控件 TextView 显示文本信息 button 普通按钮 EditText 可编辑的文本框组件(输入框) ImageView 用于显示图片 ImageBUtton ...

  10. Android 自动换行添加控件

    PS:转载请注明出处,谢谢 最近在项目里面有几个需要根据返回的数据来自动添加控件的地方,在网上找了一些,然后加上自己写的一些,都一起整理完,然后给自己做个备注,啦啦啦啦啦啦~~~~ 先贴一张镇楼效果图 ...

最新文章

  1. 想做数据分析?这个比赛适合你!
  2. PostgreSQL in 与 = any 的SQL语法异同与性能优化
  3. 基于FastJson的通用泛型解决方案
  4. POJ 3159 Candies
  5. 上周热点回顾(6.17-6.23)
  6. OPPO 回应“不务正业”生产口罩;旧款 iPhone 降速被罚 2500 万欧元;Angular 9.0.0 发布| 极客头条...
  7. 一次防火墙无法重启的排查过程和总结
  8. java calendar星期几_正确获取星期几(Calendar.DAY_OF_WEEK)
  9. Excel合并多个文件
  10. XTU 1339 Interprime
  11. 腾讯,字节等大厂面试真题汇总,赶快收藏备战金九银十!
  12. Eclipse Mars2中Augular2开发环境的搭建过程记录
  13. 神经网络及其变种串联
  14. 抖音直播伴侣显示服务器问题,抖音直播伴侣窗口怎么设置?调整窗口的方法了解一下...
  15. Oracle求同比SQL
  16. 自定义Navigator切换fragment
  17. python输出成绩分析代码_Python根据成绩分析系统浅析
  18. CornerNet: Detecting Objects as Paired Keypoints论文笔记(详细)
  19. 汉字转16进制 php,PHP实现中文汉字与16进制编码转换
  20. (android)向sdcard中添加文件出现Failed to push the item(s)

热门文章

  1. dex字符串解密_GitHub - zhoushuntong/DexEncryptionDecryption: APK 加固 dex 加密,解密 学习项目...
  2. 怎样将tiff格式转成jpg或png?
  3. 面试经验--Lowe Profero
  4. 已安装更新版本的onedrive_OneDrive 同步应用程序更新过程
  5. Word中部分内容出现乱码、不显示页码和目录
  6. php 将图片裁剪成圆形图片,[PHP]把图片切成圆形
  7. 百度翻译API教程(完整Android代码)
  8. 微信企业号开发之access_token接口调用示例(一)
  9. java 日历转化-阴历转阳历
  10. php设置excel列宽,excel列宽在哪里设置