在Android开发中,根据项目的需求,需要定制一些特殊的样式,例如:使用EditText时,聚焦时的背景及光标图片使用自定义而非android系统默认的。这两天,在项目中涉及此需求,现记录如下:

首先,说明灵感来自于http://bbs.csdn.net/topics/391491663中的评论,谢谢!另外,若想了解更多EditText属性,可参考:http://blog.csdn.net/qq_15128547/article/details/50947041

默认情况下:

android:id="@+id/editText"

android:layout_width="120dp"

android:layout_height="wrap_content"

android:layout_marginLeft="20dp"

android:gravity="left"

android:hint="hint"

/>

默认运行效果如下:

观察效果发现,默认情况下,聚焦背景蓝色、光标黑色、选择下方是蓝色图片(即图中的textSelectHandle)

现将上述三项改为自定义,需要下述三个属性:

android:background        背景

android:textCursorDrawable   光标

android:textSelectHandle    聚焦选择图标

设置如下:

android:id="@+id/editText"

android:layout_width="120dp"

android:layout_height="wrap_content"

android:layout_marginLeft="20dp"

android:gravity="left"

android:hint="hint"

android:background="@drawable/edit_text_bg"

android:textCursorDrawable="@drawable/edit_cursor"

android:textSelectHandle="@drawable/edit_select_handle" />

设置后运行效果如下:

下面,分别描述对应样式图片:

edit_text_bg:自定义背景

edit_cursor:光标

edit_select_handle:聚焦选择下方图标

上述三个,均使用自定义drawable,具体代码如下:

edit_text_bg.xml:

>

android:tint="@color/n_text_default_color"

/>

android:tint="@color/n_text_default_color" />

android:tint="@color/n_text_focus_color" />

edit_cursor.xml:

android:shape="rectangle" >

edit_select_handle.xml:

android:shape="rectangle" >

整个修改涉及的代码如上,但需要注意一下事项:

1、若是仅某个EditText需要使用特殊样式则直接在当前EditText中设置属性即可;但为了可扩展性,建议写在styles.xml中,以后在需要的EditText中引用该样式即可,即:

...

style="@style/EditTextStyle"

...

/>

2、若整个项目均统一风格,则在AndroidManifest.xml中的标签中,加入android:theme="@style/AppTheme",其中AppTheme中加入以下属性即可:

...

@style/EditTextStyle

...

3、关于EditTextStyle的样式如下:

@drawable/edit_text_bg

@drawable/edit_cursor

@drawable/edit_select_handle

--------------------------补充以下,另外一张图,选择文本时,出现的图标:

android同样提供了相应的属性,在此不再赘述:

android:textSelectHandleLeft="@drawable/edit_select_left"      //左

android:textSelectHandleRight="@drawable/edit_select_right"     //右

疑问:在写代码时,用到hint,但是,起初运行时,并未显示 ,多次修改也不行,最后,很之前的一个界面对比,发现当前Activity没有设置Theme,于是就设置了系统的Theme,结果就可以了,不知道问什么?知道的小伙伴,麻烦告知:

此文仅是抛砖引玉,关于EditText属性还很多,大家可以测试,有什么问题,欢迎交流!

Android中EditText显示明文与密文的两种方式

版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录输入框显示.隐藏密码的简单布局以及实现方式. 效果图    代码分析 方式一 /**方式一:*/ private void sh ...

android中的样式和主题

有的时候我们一个页面要用很多个textview,而且这些textview的样式非常相像,这种情况下我们可以把这些样式抽取出来,然后在每个textview中引用即可,这样修改起来也方便. 我们来看一个简 ...

【整理】Android中EditText中的InputType类型含义与如何定义( 转 )

转自:[整理]Android中EditText中的InputType类型含义与如何定义 用到的时候查到了这篇文章觉得很不错,就在此记录下. [背景] 经过一些Android中EditText方面的折腾 ...

【转】Android中EditText中的InputType类型含义与如何定义

原文网址:http://www.crifan.com/summary_android_edittext_inputtype_values_and_meaning_definition/ 经过一些And ...

android中的样式主题和国际化

一.Android中的样式和主题     1.1样式     样式是作用在控件上的,它是一个包含一个或者多个view控件属性的集合.android style类似网页设计中的css设计思路,可以让设计 ...

【我的Android进阶之旅】如何隐藏Android中EditText控件的默认下划线

Android EditText控件是经常使用的控件,但是有时候我们并不需要它的一些默认的属性,比如说下划线,因为有时候这样的默认下划线看起来特别怪异,和其他控件在一起搭配的时候不协调,因此有时候就需 ...

关于android中EditText边框的问题 下划线

方法1 将edittext的style设置成?android:attr/textViewStyle 取消掉默认的样式,在设置background为@null 接下来就是一个空空的edittext了, ...

Ionic4.x Theming(主题) 增加内置主题 颜色 修改内置组件默认样式 修改底部 Tabs 背景颜色以及按钮颜色

1.Ionic4.x Theming(主题) Ionic4.x 修改主题颜色的话需要在 src/theme/variables.scss 文件中修改. https://ionicframework.c ...

Android中EditText设置输入条件

一.应用场景 之前做商城应用时,会有对用户资料的设置情况进行限制,如下: (1)用户邮箱,应当只允许输入英文字母,数字和@.两个符号, (2)用户手机,应当只能输入数字,禁止输入其他字符. (3)用户 ...

随机推荐

js获取ip地址

方法三(所有的平台及浏览器):使用的搜狐接口

关于auth库,建议如下:1. ion_auth,基于Redux重写而成,非常不错的认证库,国外用的很多,几个最新的ci2.0.2基础上的开源系统(如doveforum)都用它,支持ci 2.0和以上 ...

PHP字符处理基础知识

<?php class StrDemo { function StrTest() { $s = "abcd"; print '$s length:'.strlen($s).& ...

Leetcode 172 Factorial Trailing Zeroes

给定一个数n 求出n!的末尾0的个数. n!的末尾0产生的原因其实是n! = x * 10^m 如果能将n!是2和5相乘,那么只要统计n!约数5的个数. class Solution { public ...

windows下apache配置https

1.下载带有openSSL的apache安装包,我下载的为apache_2.2.11-win32-x86-openssl-0.9.8i.msi,安装后确认一下bin路径下的openssl.exe,ss ...

xcode7 app loader error itms 90168

. $ cd ~/.itmstransporter   . $ rm update_check*   . $ mv softwaresupport softwaresupport.bak   . $  ...

&lbrack;Rails&rsqb; 设计模式 MVC

使用 MVC 的Web开发框架有很多,比如 PHP 的 Zend,Python 的 Django 和 Golang 的 Beego.这篇文章主要介绍一下 MVC 的基本概念. 何为MVC 为了明确一个 ...

Mycat 分片规则详解--枚举分片

实现方式:切分规则根据文件(partition-hash-int.txt)配置的可能的枚举来进行分片,此种分片规则理解为枚举分区,会比较适合于取值固定的场合,比如说省份(固定值) 优点:适用于按照省份 ...

go语言调度器源代码情景分析之三:内存

本文是系列 第一章 预备知识的第2小节. 内存是计算机系统的存储设备,其主要作用是协助CPU在执行程序时存储数据和指令. 内存由大量内存单元组成,内存单元大小为 ...

about&colon;firefox set

about:config new:browser.cache.disk.parent_directory  (disk.cache) new:browser.cache.offline.parent_ ...

android edittext光标太大,Android中EditText样式修改 聚焦光标、背景相关推荐

  1. Android踩坑日记:RecyclerView中EditText和ImageView的ViewHolder复用坑

    RecyclerView中EditText和ImageView的ViewHolder复用坑 RecyclerView作为ListView的升级版,目前来讲讲开发过程遇到的坑. RecyclerView ...

  2. android webview 太大,Android应用开发之Android WebView加载图片显示过大的处理教程(代码教程)...

    本文将带你了解Android应用开发Android  WebView加载图片显示过大的处理教程(代码教程),希望本文对大家学Android有所帮助. Webview加载图片时,经常会遇到图片显示不符合 ...

  3. edittext 监听无效_Android中EditText 设置 imeOptions 无效问题的解决方法

    有时候我们需要在EditText  输出完之后 需要在键盘出现 右下角变成"Go"或"前往 搜索时:通常我们需要设置Android:imeOptions属性.Androi ...

  4. Android Studio中的button修改不了背景颜色

    用android:background=""修改button的背景没有作用 这时候可以将res/values/themes.xml下的 <style name="T ...

  5. c 语言如何隐藏光标,如何隐藏C#中textBox控件的光标

    怎么隐藏C#中textBox控件的光标 using System.Runtime.InteropServices; -- [DllImport("user32", EntryPoi ...

  6. Word中新建样式/修改样式对话框中的各个选项意义

    名称(N): 显示您在"样式"对话框中选择的样式的名称.您可以更改此样式,或者键入新名称来新建样式,长文档中,样式的名称要注意易于理解和记忆,如"篇样式",&q ...

  7. android手机照片设壁纸太大,Android手机上设置一个特定的图片作为壁纸会导致手机崩溃...

    上周,我们报道了在一些Android手机上设置一个特定的图片作为壁纸会导致手机崩溃,并陷入显示开关的循环中,使其无法通过锁定屏幕.它影响了大多数安卓手机,尤其是三星智能手机. 人们发现问题在于图像的格 ...

  8. android 背景图太大,android – 背景图片需要太长时间才能画(Canvas)Jerky Sprites ……?...

    嘿所有我正在处理我一直在努力的应用程序的十字路口. 这是一个游戏和一个"街机/动作",但是我使用Surfaceview而不是Open GL对它进行编码(当游戏从原始设计中彻底改变时 ...

  9. android webview内容变大,Android中WebView加载的网页被放大的解决办法

    在某些大分辨率下,我们用WebView加载的网页可能会出现被放大的现象,这显然不是我们想要的结果,我开始看WebSettings这个是否可以设置不缩放,webSettings.setBuiltInZo ...

最新文章

  1. js、jQuery、layer实现弹出层的打开、关闭
  2. elasticsearch 客户端工具_elasticsearch初使用
  3. IBM已“弃疗”,AI医疗研发10年不赚钱,终于打算卖了
  4. php中用foreach改变数组的值的问题
  5. 微信小程序下拉刷新/上拉加载更多
  6. Oracle入门(十二I)之误删除数据的恢复方法
  7. linux笔记:文件系统管理-fdisk分区
  8. 科比退役时间什么时候
  9. i2c-tools 使用集锦
  10. 第十七届时尚COSMO美容大奖盛大启动 亮点多维度升级,2020一起“美就出圈”
  11. 【HDLBits刷题笔记】Exams/ece241 2013 q7
  12. 如何用两个晚上教女生学会Python
  13. 4.25 C语言练习(然后是几点:根据起始时间和流逝的时间计算出终止时间。计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。)
  14. 顶级国漫镇魂街唯一正版IP授权之作镇魂街武神躯手游正式上线!
  15. 制作vagrant镜像
  16. js判断字符串是不是一个纯数字
  17. linux定时每隔多少天,Linux中Cron任务间隔执行:每隔几分钟/几小时/几天
  18. ubuntu14.04系统下对SD卡分区
  19. 秋日黄花城,红叶映长城
  20. LeetCode算法复健:10.正则表达式匹配

热门文章

  1. 开发工程师的自我评价_配方工程师-简历范文,工作经历+项目经验+自我评价怎么写...
  2. 【经验】RH850 RS-CANFD接收滤波配置
  3. linux挂载文件夹没有权限,Linux Mount NTFS分区造成的权限问题如何解决?
  4. 【Android】图标爆炸效果(类似小米卸载应用图标散开效果)
  5. 安卓软件改名器_【安卓】视频下载器 下载视频必备的软件,只要能播放,就能下载。再附带8个视频网站...
  6. 微信小程序Demo之电影评分功能
  7. 经典文学之二:诗词水调歌头、将进酒、春江花月夜、诗经·国风·周南、声声慢·寻寻觅觅
  8. 理解对数——了解对数的历史和用途
  9. CCF 201512-2 消除类游戏 python 满分
  10. 使用python的scapy库,提供一个可用的通过nbns协议获取主机名称的示例代码