欢迎转帖,但请注明地址:http://blog.csdn.net/ethan_xue/   谢谢

最近因为项目需要,更改EditText被选中时的图片,网络搜索未果,于是查看源代码

EditText代码里没什么东西,于是猜测在其父类TextView中,很快发现这样一段代码

  int mTextSelectHandleLeftRes;    int mTextSelectHandleRightRes;    int mTextSelectHandleRes;    Drawable mSelectHandleLeft;    Drawable mSelectHandleRight;    Drawable mSelectHandleCenter;
看名字就猜到是这个了,google写的代码就是漂亮,根据mTextSelectHandleLeftRes找到这段代码

 case com.android.internal.R.styleable.TextView_textSelectHandleLeft:      mTextSelectHandleLeftRes = a.getResourceId(attr, 0);      break;

看到R.styleable.TextView_textSelectHandleLeft,果断去查看res文件,呵呵,果然就是他

styles.xml里


看到?android:attr/textSelectHandleLeft去查看attr.xml,结果有以下代码

        
到此只能说明有这个属性,那杯具了,只有个style,图片文件在哪里啊?于是使用强大的notepad++的查找功能,ctrl+f--文件查找--textSelectHandleLeft结果发现public.xml里和themes.xml里都有,themes.xml里是这样写的

        @android:drawable/text_select_handle_left        @android:drawable/text_select_handle_right        @android:drawable/text_select_handle_middle        @android:style/Widget.TextSelectHandle

到此终于找到图片了,替换掉后的效果


然后看到选中的字的背景是黄色的,怎样改变呢?

源码里

 /**     * Sets the color used to display the selection highlight.     *     * @attr ref android.R.styleable#TextView_textColorHighlight     */    @android.view.RemotableViewMethod    public void setHighlightColor(int color) {        if (mHighlightColor != color) {            mHighlightColor = color;            invalidate();        }    }
于是我们只要设置这个方法就可以了

效果如图


更多相关文章

  1. Android(安卓)Studio编译FFmpeg
  2. 异曲同工 7个Android应用程序源代码打包下载(与10个不一样)
  3. 如何移植library到Android
  4. AndroidMainfest.xml文件中的android属性
  5. window 下 利用gradle编译volley源代码
  6. Android工程使用SVG图片
  7. android预览word(WPS预览)
  8. axml格式
  9. android 控件: xml 设置 Button 按下背景

随机推荐

  1. 试玩Android(一)
  2. Android随笔之——Android ADB详解
  3. Android Native C/C++简介
  4. Android Dialog对话框的七种形式的使用
  5. Android中的布局方式(二)
  6. Android在TQ2440开发板上的移植
  7. android声音播放
  8. Android用Application设置全局变量以及使
  9. Android之Adapter用法总结
  10. Android学习笔记之Android包、ADB介绍