美文网首页安卓进阶
EditText 自定义选中字体、光标和水滴样式

EditText 自定义选中字体、光标和水滴样式

作者: 飞往卓越之路 | 来源:发表于2022-01-19 10:19 被阅读0次

    开发中可能需要灵活自定义EditText的光标、长按选中的文字和水滴样式,怎么做呢?

    • 【App一步到位】App全局修改EditText风格,设置
      <item name="colorAccent">@android:color/holo_blue_light</item>的颜色值:
      <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@android:color/holo_blue_light</item>
        </style>  
    

    效果展示:


    全局修改.jpg
    • 【Activity自成一派】同理在某个Activity应用的style中,设置
      <item name="colorAccent">@android:color/holo_blue_light</item>的颜色值则可以单独改变该Activity的EditText风格。
    • 【Dialog查漏补缺】在Dialog中的EditText,设置app或Activity的style是起不到相应的效果的,需要如下处理:
      (1)修改光标的样式:
      新建drawable样式文件:shape_edit_cursor.xml
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:color="#cc0000"/>
        <size android:width="2dp" />
    </shape>
    

    EditText控件中增加android:textCursorDrawable="@drawable/shape_edit_cursor":

    <EditText
           android:layout_width="200dp"
           android:layout_height="wrap_content"
           android:textCursorDrawable="@drawable/shape_edit_cursor"
           app:layout_constraintBottom_toBottomOf="parent"
           app:layout_constraintLeft_toLeftOf="parent"
           app:layout_constraintRight_toRightOf="parent"
           app:layout_constraintTop_toTopOf="parent" />
    
    效果展示: Dialog中的EditText光标.png

    (2)修改长按字体的选中颜色和水滴颜色:
    在自定义的style里,通过
    <item name="android:textColorHighlight">#66cc0000</item>
    设置字体选中蒙层的颜色,通过
    <item name="android:colorControlActivated">#cc0000</item>
    (要求API至少21)设置水滴颜色

    <style name="WidgetDialog" parent="@android:style/Theme.Dialog">
            <item name="android:background">#00000000</item>
            <item name="android:windowBackground">@android:color/transparent</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowIsFloating">true</item>
            <item name="android:textColorHighlight">#66cc0000</item>
            <item name="android:colorControlActivated">#cc0000</item>
        </style>
    

    然后在dialog里设置该style。

    效果展示: Dialog中的EditText选中部分和水滴的颜色.png

    相关文章

      网友评论

        本文标题:EditText 自定义选中字体、光标和水滴样式

        本文链接:https://www.haomeiwen.com/subject/impbfltx.html