自定义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"