0

我正在尝试使用在文本上方添加渐变ShapeDrawable。目标是淡化屏幕左侧和右侧的文本。布局如下:

<RelativeLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent">

    <TextView
        android:id="@+id/text_view"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:text="Lorem ipsum dolor sit amet"
        android:textColor="#000"
        android:textSize="18sp"/>

    <View
        android:layout_height="wrap_content"
        android:layout_width="60dp"
        android:layout_alignTop="@id/text_view"
        android:layout_alignBottom="@id/text_view"
        android:background="@drawable/gradient_shape"/>

    <View
        android:id="@+id/line"
        android:layout_height="2dp"
        android:layout_width="30dp"
        android:layout_below="@id/text_view"
        android:background="#00f"/>

    <View
        android:layout_height="2dp"
        android:layout_width="60dp"
        android:layout_below="@id/line"
        android:background="#f00"/>

</RelativeLayout>

渐变ShapeDrawable

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<gradient
    android:startColor="#ffffffff"
    android:endColor="#00ffffff"
    android:type="linear"
    />

</shape>

问题是我的HTC Desire高清渐变不平滑。在屏幕上看起来像这样:(对不起质量,图像在照片编辑器中略微调整以使效果更明显)

渐变照片

我发现,这条渐变线出现在渐变绘制的中心。渐变下方的蓝线显示了这一点。有人可以建议我如何解决这个问题吗?在设备上,这看起来很糟糕。

我试图在模拟器上运行这个应用程序Ritmix-RMP-470- 一切看起来都很好。渐变是平滑和美丽的。但在HTC Desire高清上,问题存在。另外,我尝试使用DDMS. 在屏幕截图上,一切看起来也很好:

使用ddms的渐变截图

我尝试PNG在照片编辑器中制作渐变图像,然后使用它png而不是ShapeDrawable. 结果还是一样。

有什么办法可以避免这种渐变的视觉问题?

4

1 回答 1

0

尝试这样做:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFormat(PixelFormat.RGBA_8888);
    ...
}

某些手机​​(尤其是 HTC)使用另一种默认的 PixelFormat。它不会显示干净的颜色表面,但任何渐变或带有阴影的东西都会看起来很不对劲。

于 2013-11-06T07:37:35.533 回答