Android布局中的十六进制颜色值未正确显示

时间:2014-02-13 22:32:10

标签: android android-layout colors

我有一个背景图像,右侧有一致的颜色。我希望活动的背景颜色匹配,以便图像可以显示宽度正确的宽高比(从左侧锚定)的全高。我不想要当前显示的颜色开关:

Imgur

我使用了一个颜色滴管工具来获取图像中使用的紫色的十六进制值(屏幕截图的左侧)。它的十六进制值是#4A2D70。然后我创建了一个color资源:

<color name="purpleBackground">#4A2D70</color>

并将其设置为RelativeLayout的背景颜色:

<RelativeLayout 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:background="@color/purpleBackground">

图形布局预览与上面的屏幕截图相匹配,当我在模拟器或设备上运行时,用于显示的RelativeLayout的紫色与我指定的十六进制值不同。我再次使用了颜色管理器工具来比较模拟器,这就是我得到的:#391C5D

我也尝试过使用alpha设置并将RelativeLayout背景设置为白色并使用此purpleBackground作为ImageView的背景颜色。

重申我的主要问题:为什么十六进制颜色值不会直接转换?有解决方案或解决方法吗?

编辑:这是我正在使用的主题:

<style name="CustomTheme" parent="@android:Theme.Holo.Light">
  <item name="android:actionBarStyle">@style/CustomTheme.ActionBar</item>
  <item name="android:editTextStyle">@style/CustomTheme.EditText</item>
</style>

2 个答案:

答案 0 :(得分:1)

尝试白色#FFFFFF,你应该能够看到颜色是否被解释错误,或者选择器是否给你错误的值。

答案 1 :(得分:1)

我从未弄清楚为什么这不起作用,但我确实使用了一个简单有效的解决方法和背景图像。我只是为活动复制了背景图像右侧的一个非常薄的切片。然后我将其设置为包含ImageView的RelativeLayout的android:background属性:

<RelativeLayout 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"
    tools:context=".MainActivity"
    android:background="@drawable/background_slice" >

附注:ImageView设置如下,以匹配高度并保持其纵横比。它固定在左侧,所以我最终得到了填充右侧的空间,这是background_slice显示的地方。

<ImageView
    android:id="@+id/backgroundImageView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:scaleType="fitStart"
    android:src="@drawable/background"
    android:contentDescription="@string/content_desc_background" />