我正在尝试添加一个包含渐变的背景(我想使用图像,而不是
android xml声明的渐变效果).
这个图像被Android严重破坏,它添加了一些蹩脚的条带,无论我尝试的结果是相同的(两个捕获大约相同区域的扭曲/正常图像):
我的图像用作布局XML中的布局背景:
android:background="@drawable/background_gradient_dithered"
我试图使用一个中间drawable来强制xml为的抖动:
<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/background_gradient" android:dither="true" android:antialias="true" android:filter="true"/>
我试图在我的onCreate()中使用以下代码:
getwindow().setFormat(PixelFormat.RGBA_8888);
两次尝试都没有改变.
谢谢
解决方法
正确的解决方案是……我打赌你猜对了:重启Eclipse.我已经了解到,Android上的每个问题都可能是“重启Eclipse问题”.
经过一些测试后,我可以补充一点,当Format设置为PixelFormat.RGBA_8888时,启用dethering无用.
读者应该看看@ TenFour04给出的答案,这种方法可以避免使drawable只是为了启用抖动.
window.addFlags(WindowManager.LayoutParams.FLAG_DITHER);
编辑:
我发现,即使有了这些技巧,问题也会持续存在.您可以尝试修改PNG以在其中包含alpha图层(例如,将像素更改为99%的透明度),这将迫使Android编译器不使用它.