短視訊平臺原始碼,Android中 TextView設定顏色無效的問題

zhibo系統開發發表於2021-11-15

 短視訊平臺原始碼,Android中 TextView設定顏色無效的問題實現的相關程式碼

           tvTreble.setTextColor(R.color.white);

由於不是用Androidstdio編譯的程式碼,當時未發現錯誤,檢視了原始碼:

    /**
     * Sets the text color for all the states (normal, selected,
     * focused) to be this color.
     *
     * @param color A color value in the form 0xAARRGGBB.
     * Do not pass a resource ID. To get a color value from a resource ID, call
     * {@link android.support.v4.content.ContextCompat#getColor(Context, int) getColor}.
     *
     * @see #setTextColor(ColorStateList)
     * @see #getTextColors()
     *
     * @attr ref android.R.styleable#TextView_textColor
     */
    @android.view.RemotableViewMethod
    public void setTextColor(@ColorInt int color) {
        mTextColor = ColorStateList.valueOf(color);
        updateTextColors();
    }

傳了一個resource ID進去,原始碼告訴我們要用getColor()方法,於是

tvTreble.setTextColor(this.getResources().getColor(R.color.white)); 

這樣就大功告成。

但是我在檢視原始碼的同時意外發現:

     /**
     * Sets the text color.
     *
     * @see #setTextColor(int)
     * @see #getTextColors()
     * @see #setHintTextColor(ColorStateList)
     * @see #setLinkTextColor(ColorStateList)
     *
     * @attr ref android.R.styleable#TextView_textColor
     */
    @android.view.RemotableViewMethod
    public void setTextColor(ColorStateList colors) {
        if (colors == null) {
            throw new NullPointerException();
        }
 
        mTextColor = colors;
        updateTextColors();
    }
 
    /**
     * Gets the text colors for the different states (normal, selected, focused) of the TextView.
     *
     * @see #setTextColor(ColorStateList)
     * @see #setTextColor(int)
     *
     * @attr ref android.R.styleable#TextView_textColor
     */
    public final ColorStateList getTextColors() {
        return mTextColor;
    }


結合第一段程式碼的註釋,如果你想要設定文字顏色隨狀態可變的話,第一種設定方法不管怎麼樣都會預設的顏色 因此想要動態設定的話,我們應該

tvTreble.setTextColor( this.getResources().getColorStateList( R.color.text_color_pressed) );


以上就是  短視訊平臺原始碼,Android中 TextView設定顏色無效的問題實現的相關程式碼,更多內容歡迎關注之後的文章

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2842220/,如需轉載,請註明出處,否則將追究法律責任。

相關文章