我一直在努力让渐变在运行 Android 5.0.1 的 LG G Watch 上显得平滑。
在您标记为重复之前,我已经尝试了几个帖子的每个答案(例如为什么 android 在显示 png 文件时会丢失图像质量?,是否可以抖动渐变可绘制对象?,android:dither="true" 不会抖动,怎么了?,彩色条带 Android 解决方案,彩色条带和带有渐变的伪影,尽管到处都使用 RGBA_8888,彩色条带仅在 Android 4.0+ 上, Android 中的背景图像质量糟糕),但似乎没有一个适用。
这是我创建渐变的步骤
1) 从最新的 Android SDK 加载示例 'Wearable: Watch View Stub' 项目
2)将rect_background.xml
drawable更改为:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/rect_corner_radius"/>
<gradient android:startColor="@color/light_grey"
android:endColor="@color/white"
android:angle="90"/>
</shape>
3)这是它在模拟器上的样子
4)这是我从设备进行屏幕截图时的样子:
5)但是当我亲自看时,有可怕的条纹:(在现实生活中看起来更糟;图像不公平)
以下是它的真实外观的模拟图像(128 色):
我也试过:
- 使用 png 位图(24 位)
- 使用具有 1 个透明像素(32 位)的 png 位图
- 使用具有所有半透明像素(32 位)的 png 位图
- 使用减少位深度的 png 位图(256 色)
使用质量为 100 的 jpeg。
创建布局前后在Activity中手动设置PixelFormat为RGBA_8888
- 在活动中打开抖动
- 使用自定义位图加载器从代码中加载位图(设置像素格式、抖动等,请参阅Awful background image quality in Android)
- 关闭 ImageView 的任何缩放
- 将图像放入 drawable、drawable-hdpi 和 raw 文件夹
- 解压缩 APK 并验证图像是否已解压缩。
所有这些都以相同的方式显示。
如何让它在设备上正确显示?
还有其他人看到这个问题吗?根据这个网站,LG G Watch 有一个颜色深度或 24 位,每个通道应该是完整的 8 位。设备上的正常图像看起来是正确的——没有明显的条纹。