在所有sdk中更改Android中EditText的光标颜色

时间:2012-07-17 13:25:20

标签: android cursor android-edittext

想要更改必须在所有设备上处理的android的edittext光标颜色

5 个答案:

答案 0 :(得分:17)

我必须使用这样的drawable:

mycursor.xml:

      <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
        <size android:width="1dp" />
        <solid android:color="@android:color/holo_blue_light"/> 
<!--make sure its a solid tag not stroke or it wont work -->
    </shape>

在我的编辑文本中,我设置了光标可绘制属性,如下所示:

                            <EditText
                            android:id="@+id/et_details"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:cursorVisible="true"
                           android:textCursorDrawable="@drawable/mycursor"  
                            />

答案 1 :(得分:8)

在所有平台上实现它的方式就是这样。

1 - 在布局文件夹中打开layout.xml。 找到编辑文本并设置

android:cursorVisible="true"

这将设置低于os版本11的设备的光标

2 - 在drawable文件夹中创建cursor_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <size android:width="1dp" />
    <stroke android:color="@color/black"/>
</shape>

3 - 创建文件夹layout-v11

4 - 将layout.xml复制到layout-v11

5 - 找到您的编辑文本并设置android:textCursorDrawable =“@ drawable / cursor_drawable”

这将使光标显示在所有设备和操作系统上。

答案 2 :(得分:7)

android:textCursorDrawable属性分配给@null并将android:textColor设置为光标颜色。

答案 3 :(得分:1)

创建drawalble xml:edtcolor_cursor

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
        <size android:width="1dp" />
        <solid android:color="#FFFFFF"  />
    </shape>

<EditText  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:cursorVisible="true"
    android:textCursorDrawable="@drawable/edtcolor_cursor"
    />

答案 4 :(得分:-1)

Refer到此链接。 你可以尝试这个

android:textCursorDrawable