【问题标题】:Hex color values in Android layouts are not being displayed accuratelyAndroid 布局中的十六进制颜色值未准确显示
【发布时间】:2014-02-13 22:32:10
【问题描述】:

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

我使用了一个颜色滴管工具来获取图像中使用的紫色的十六进制值(屏幕截图的左侧)。它的十六进制值为#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>

【问题讨论】:

  • 你用的是什么主题?也许你用的是透明背景的?
  • 是的。我冒昧地猜测这是由于某处的透明度。
  • 好的,增加透明度或阴影是有意义的。我有一个扩展 Theme.Holo.Light 的自定义主题。我将其添加到问题中。

标签: android android-layout colors


【解决方案1】:

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

【讨论】:

  • 很好的故障排除思路。白色是正确的,但红色(#FF0000)是#F80016。那么也许是在某处应用了透明度或阴影?
【解决方案2】:

我从来没有弄清楚为什么这不起作用,但我确实使用了一个简单而有效的解决方法来处理背景图像。我只是为 Activity 复制了背景图像右侧的一个非常薄的切片。然后我将其设置为保存 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" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 2014-07-03
    • 1970-01-01
    相关资源
    最近更新 更多