Change the Color of Highlighted text in Android

前端 未结 5 4924
栀梦
栀梦 2021-02-20 19:13

I\'m not sure that this is possible, perhaps someone can set me straight. I have an EditText View in an android application that has white text on a blue background. When the te

相关标签:
5条回答
  • 2021-02-20 19:18
    Object mSelectionForegroundColorSpan;
    @Override
    protected void onSelectionChanged(int selStart, int selEnd) {
        super.onSelectionChanged(selStart, selEnd);
        if(mSelectionForegroundColorSpan == null){
            mSelectionForegroundColorSpan = new ForegroundColorSpan(Color.GREEN);
        }else{
            getText().removeSpan(mSelectionForegroundColorSpan);
        }
        if(selStart > selEnd){
            int swap = selStart;
            selStart = selEnd;
            selEnd = swap;
        }
        getText().setSpan(mSelectionForegroundColorSpan, selStart, selEnd, Spanned.SPAN_INTERMEDIATE);
    }
    

    Override the onSelectionChanged method of TextView, get the text and set a ForegroundColorSpan

    0 讨论(0)
  • 2021-02-20 19:26

    Try with textColorHighlight - "Color of highlighted text." http://developer.android.com/reference/android/R.attr.html#textColorHighlight

    0 讨论(0)
  • 2021-02-20 19:28

    Try:<item name="android:textColorHighlight">your_color</item>

    in the style that you as your theme. For e.g.

    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="colorPrimary">your_color1</item>
        <item name="colorPrimaryDark">your_color2</item>
        <item name="colorAccent">your_color3</item>
        <item name="android:textColor">your_color4/item>
        <item name="android:textColorHighlight">your_color</item>
    </style>
    

    then use this style as the theme for your activity in the manifest file. For e.g.-

    <activity
        android:name=".youractivity"
        android:label=""
        android:theme="@style/AppTheme.NoActionBar"       
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    
    0 讨论(0)
  • 2021-02-20 19:30

    As referred to by this SO post, you should be using a selector to change text colors like so:

    <?xml version="1.0" encoding="UTF-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- Pressed State -->
        <item android:state_pressed="true"
            android:color="#FFFFFF" />
    
        <!-- Focused State -->
        <item android:state_focused="true"
            android:color="#FFFFFF" />
    
        <!-- Default State -->
        <item android:color="#000000" />
    </selector>
    

    And then set your textColor property to @drawable/selector_name

    0 讨论(0)
  • 2021-02-20 19:41

    Did you try @android:attr/textColorPrimaryInverse ?

    0 讨论(0)
提交回复
热议问题