自定义全框EditText,并指定光标颜色,粗细,高度,初始位置等

本文介绍了如何自定义Android的EditText,使其显示全框样式,并在聚焦时改变颜色。通过设置shape文件和selector选择器实现边框效果。同时,通过调整android:textSize改变光标高度,使用android:textCursorDrawable和自定义shape文件定制光标的颜色和粗细,以及通过android:gravity和android:padding控制光标初始位置。
自定义EditText为有边框的样式:
第一步:定义两个shape文件:如下代码:
未获得焦点时,命名为edittext_normal:
<?xml version="1.0" encoding="UTF-8"?>   
<shape xmlns:android="http://schemas.android.com/apk/res/android">   
    <solid android:color="#FFFFFF" />   
    <corners android:radius="3dp"/>  
    <stroke    
        android:width="0.5dp"    
        android:color="#BDC7D8" />   
</shape>  
获得焦点时,命名为edittext_focused:
<?xml version="1.0" encoding="UTF-8"?>   
<shape xmlns:android="http://schemas.android.com/apk/res/android">   
    <solid android:color="#FFFFFF" />   
    <corners android:radius="3dp"/>  
    <stroke    
        android:width="0.5dp"    
        android:color="#728ea3" />   
</shape>  
第二步:定义selector选择器,命名为edittextstyle如下代码:
<?xml version="1.0" encoding="UTF-8"?>   
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
        <item android:state_window_focused="false" android:drawable="@drawable/edittext_normal" />  
       <item android:state_focused="true" android:drawable="@drawable/edittext_focused" />  
</selector>  
第三步:把edittextstyle文件作为editText的背景即可实现全框,且获取到焦点和未获取到焦点有两种颜色状态,如下代码
		<EditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/edittextstyle"
            />
如何改变光标的高度:
通过改变EditText的android:textSize=""属性来控制光标高度,字号越小,光标越小

如何改变光标的颜色及粗细:
首先,EditText控件里有个xml属性,android:textCursorDrawable="@drawable/XXX",该属性就是用来设置EditText控件的光标的属性的,
同时还有一个android:cursorVisible="true"属性,用来设置光标是否可见,
自定义光标的颜色及粗细:
	1,定义一个shape文件,命名为cursorstyle:代码如下:
	<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <size android:width="1dp" />
    <solid android:color="#008000"  />
</shape>
	2,把cursorstyle	作为android:textCursorDrawable="@drawable/cursorstyle"即可,
			
如何指定光标初始位置:
	通过给EditText指定android:gravity="center",可以让光标初始位置在EditText的中间,如果EditText尺寸比较大,并且又想让文本从左上角开始输入
	那么可以指定android:gravity="start|top",如果还想让光标距离EditText的上边沿和左边沿有一些间隔,可以指定android:paddingLeft="5dp"
    android:paddingTop="5dp"
			
			
			
			

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值