我正在使用以下drawable:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<gradient
android:startColor="@color/content_background_gradient_start"
android:endColor="@color/content_background_gradient_end"
android:angle="270"
/>
</shape>
Run Code Online (Sandbox Code Playgroud)
问题是我在hdpi设备(如Nexus One和Droid)上出现严重的条带,因为渐变从屏幕顶部到最底部.
根据http://idunnolol.com/android/drawables.html#shape_gradient,渐变没有"抖动"属性.我能做些什么来平滑渐变?
注意:向形状添加dither ="true"似乎不起作用.
Dan*_*Lew 11
我写了你引用的文档.我再看一下代码,遗憾的是除了显式调用GradientDrawable.setDither()代码之外,没有办法在GradientDrawable上启用抖动.
(代码看起来的方式,从技术上讲,你可以将Gradient作为a的唯一子项<selector>,并在整个选择器上启用抖动;但是,它绝对是一个黑客.)
我不相信启用抖动实际上可以解决你的问题,因为抖动(至少在官方的Android文档中已经注意到)是用于解决当设备太小的调色板时的条带问题.由于梯度的大小,这似乎是一个条带问题.
大家好我有同样的问题,有一个解决方案可行,但它不是很好.
getWindow().setFormat(PixelFormat.RGBA_8888);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);
Run Code Online (Sandbox Code Playgroud)
它适用于我,但问题是整个窗口都抖动了.我正在寻找一种方法来抖动渐变,但我找不到任何东西.xml中的android:dither ="true"无效,GradientDrawable.setDither(true)也无法正常工作.所以任何想法我怎么能只抖动渐变?
| 归档时间: |
|
| 查看次数: |
13570 次 |
| 最近记录: |