我正在尝试使用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
HD渐变并不顺畅。在屏幕上它看起来像这样:(抱歉质量,在照片编辑器中略微调整图像,使效果更加明显)
我发现,这条渐变线显示在渐变可绘制的中心。渐变下方的蓝线显示了这一点。 任何人都可以建议我如何解决这个问题?在设备上这看起来很糟糕。
我试图在模拟器和Ritmix-RMP-470
上运行此应用程序 - 一切看起来都很好。渐变光滑美观。但在HTC Desire
HD问题上存在问题。
另外,我尝试使用DDMS
从设备截取屏幕截图。截图一切看起来都很好:
我的活动尝试在照片编辑器中制作渐变PNG
图片,然后使用此png
代替ShapeDrawable
。结果仍然相同。
有什么方法可以避免这种渐变的视觉问题?
答案 0 :(得分:0)
尝试这样做:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFormat(PixelFormat.RGBA_8888);
...
}
有些手机(尤其是HTC)使用另一款默认的PixelFormat。它没有显示干净的颜色表面,但任何渐变或阴影的东西看起来都会错误。