重现的步骤:
的AndroidManifest.xml
<activity
android:name=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
MainActivity.java
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="?android:textColorPrimary"
android:text="Hello World!"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="?android:textColorSecondary"
android:text="Hello World!"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="?android:textColorTertiary"
android:text="Hello World!"/>
</LinearLayout>
使用布局检查器,我们将较低的两个TextView的当前文本颜色读取为相同的值-1979711488
,这对应于颜色十六进制#8a000000
。我查看了Android的源代码,发现textColorSecondary由colors_material.xml
中定义的alpha值控制为:
<item name="secondary_content_alpha_material_light" format="float" type="dimen">0.54</item>
转换为#8a0000000
。 textColorTertiary明确定义为#8a0000000
。但是,在我的Android Studio 3.0.1设计面板中,它们显示为三种不同的颜色:
两种颜色的定义是否相同?或者我错过了什么来正确使用它们?