<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="頭條" />
public TextView(Context context) {
this(context, null);
}
public TextView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.textViewStyle);
}
public TextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
this(context, attrs, defStyleAttr, 0);
}
通常我們這樣添加textview,
com.android.internal.R.attr.textViewStyle
系統默認指定了灰色文字(goole原生的是灰色,不排除一些廠家修改底層,自定義顏色)。
那麼這個默認的灰色的顏色值到底是多少????
看一下sdk中的灰色值:
public class Color {
@ColorInt public static final int BLACK = 0xFF000000;
@ColorInt public static final int DKGRAY = 0xFF444444;
@ColorInt public static final int GRAY = 0xFF888888;
@ColorInt public static final int LTGRAY = 0xFFCCCCCC;
@ColorInt public static final int WHITE = 0xFFFFFFFF;
@ColorInt public static final int RED = 0xFFFF0000;
@ColorInt public static final int GREEN = 0xFF00FF00;
@ColorInt public static final int BLUE = 0xFF0000FF;
@ColorInt public static final int YELLOW = 0xFFFFFF00;
@ColorInt public static final int CYAN = 0xFF00FFFF;
@ColorInt public static final int MAGENTA = 0xFFFF00FF;
@ColorInt public static final int TRANSPARENT = 0;
可能是 public static final int GRAY = 0xFF888888;嗎???
不確定,我們可以自己驗證:
TextView tv = ((TextView) view.findViewById(R.id.title));
int color = tv.getCurrentTextColor();
Log.d("lihui","1 color--- "+color);
12-05 17:44:58.609 16080-16080/com.example.lihui20.testhttp D/lihui: 1 color— -1979711488
textView1.setTextColor(Color.GRAY);
int color = textView1.getCurrentTextColor();
Log.d("lihui","2 color--- "+color);
12-05 17:52:56.389 23513-23513/com.example.lihui20.testhttp D/lihui: 2 color— -7829368
使用win7計算器工具
Color.GRAY:
十進制下,用2個字節表示:
-7829368
對應16進制:
FF888888
那麼:
原生的默認顏色值:
十進制下,用2個字節表示: -1979711488
對應16進制:
8A000000
8A000000 :
8A表示顏色深度
000000表示黑色
希望對開發者有用,謝謝