Android TextView的textColor仅在物理设备上出错

时间:2016-10-06 05:00:19

标签: android xml android-layout textview textcolor

对于课程,我试图在Android Studio 2.2中创建一个基本的贺卡应用程序, build#AI-145.3276617 JRE:1.8.0_76- release- B03 即可。
[PMyAS.png]

"卡"在RelativeLayout中包含大图像和少量TextView。

我试图在A ndroid 6.0.1 上测试 Nexus 5 API24模拟器物理Nexus 5 。< / p>

[PAD.png]

当我在模拟器上测试应用程序时,文本颜色显示正常,但是当我在物理设备上运行时,文本的颜色是错误的。

设计视图和模拟器似乎对文本感到满意: enter image description here

但是从我的物理设备拍摄的这个屏幕有不同的文字颜色: enter image description here

我包含的xml显示我尝试直接使用hex textColor值,但我也尝试将它们作为资源放置,但结果相同。

colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#2196F3</color>
    <color name="colorPrimaryDark">#1976D2</color>
    <color name="colorPrimaryLight">#BBDEFB</color>
    <color name="colorAccent">#FFEB3B</color>
    <color name="colorText1">#2196F3</color>
    <color name="colorText2">#1976D2</color>
</resources>

我的 activity_main.xml 文件。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    tools:context="com.touchspin.hnspd.MainActivity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        android:src="@drawable/background" />

    <TextView
        android:id="@+id/happy"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="Happy"
        android:textSize="72sp"
        android:layout_marginTop="100dp"
        android:textColor="#1976D2" />

    <TextView
        android:id="@+id/national"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="National"
        android:textSize="40sp"
        android:layout_below="@id/happy"
        android:textColor="#2196F3" />

    <TextView
        android:id="@+id/sock_puppet"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="Sock Puppet"
        android:textSize="24sp"
        android:layout_below="@id/national"
        android:textColor="#1976D2" />

    <TextView
        android:id="@+id/day"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="Day!"
        android:textSize="24sp"
        android:layout_below="@id/sock_puppet"
        android:textColor="#2196F3" />

</RelativeLayout>

我已经尝试过打扫这个版本了。重启Android Studio,资源颜色&amp;硬编码十六进制。我对任何指向正确方向感激不尽。

1 个答案:

答案 0 :(得分:5)

适用于LolliPop设备或LolliPop上层设备。如果TextColor显示效果不佳,则您已停用High contrast Text。这是默认启用。

所以解决问题转到Settings > Accessibility并关闭High Contrast Text。它将解决问题。