安卓布局中的十六进制颜色值显示不准确

3

我有一个具有一致颜色的背景图片,它贯穿整个右侧。 我希望Activity的背景颜色与之匹配,以便图像可以按正确的宽高比全高度显示(从左侧锚定)。 我不想要当前显示的颜色切换:

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。
我还尝试了调整透明度设置,并将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>

你使用的是什么主题?也许你使用的是一个带有透明背景的主题? - undefined
是的。我猜测这可能是由于某个地方的透明度问题。 - undefined
好的,添加透明度或阴影是有道理的。我有一个扩展了Theme.Holo.Light的自定义主题。我已经将它添加到问题中了。 - undefined
2个回答

1

如果您尝试使用白色#FFFFFF,则应该能够看到颜色是否被错误解释,或者选择器是否给出了错误的值。


好的故障排除思路。白色是正确的,但红色(#FF0000)显示为#F80016。所以可能是在某个地方应用了透明度或阴影效果? - undefined
可能与视图像素格式有关?RGB565(历史)与RGB888... - undefined

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" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接