Fra*_*ita 81 android gradient shape
我正在尝试将线性渐变应用于ListView.这是我的drawable xml的内容:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#3A3C39"
android:endColor="#181818"
android:angle="270"
/>
<corners android:radius="0dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
所以我将它应用于我的ListView:
android:background="@drawable/shape_background_grey"
Run Code Online (Sandbox Code Playgroud)
它可以工作,但它在模拟器和真实设备上看起来非常"带状".
有没有办法减少这种"行为"?
Fra*_*ita 82
正如Romain Guy所说:
listView.getBackground().setDither(true);
Run Code Online (Sandbox Code Playgroud)
解决了我的问题
如果这对于AMOLED和/或hdpi设备来说还不够,请试试这个:
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
Window window = getWindow();
window.setFormat(PixelFormat.RGBA_8888);
}
Run Code Online (Sandbox Code Playgroud)
把它放在你的活动中:
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
Window window = getWindow();
window.setFormat(PixelFormat.RGBA_8888);
}
Run Code Online (Sandbox Code Playgroud)
如果抖动和 RGBA_888 设置在某些手机上没有帮助,解决方案可以将该元素设置layerType为software, 以禁用硬件加速
android:layerType="software"
Run Code Online (Sandbox Code Playgroud)
这解决了我在三星 S5 手机上的问题。
| 归档时间: |
|
| 查看次数: |
73569 次 |
| 最近记录: |