Android-画布上的矢量可绘制渐变看起来有条纹/抖动

时间:2018-10-02 23:04:47

标签: java android canvas gradient drawable

使用矢量可绘制

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <gradient
                android:angle="90"
                android:type="linear"
                android:startColor="#00ffffff"
                android:centerColor="#44ffffff"
                android:endColor="#00ffffff"/>
        </shape>
    </item>
</layer-list>

val bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888)
        val bitmapCanvas = Canvas(bitmap)

drawable.setBounds(0, 0, 100, 100)
drawable.draw(bitmapCanvas)
val p1 = Paint()
canvas.drawBitmap(bitmap, 0, 0, p)

在“我的活动”中

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    Window window = getWindow();
    window.setFlags(WindowManager.LayoutParams.FLAG_DITHER, WindowManager.LayoutParams.FLAG_DITHER);
    window.setFormat(PixelFormat.RGBA_8888);
    window.setFormat(PixelFormat.TRANSLUCENT);
}

渐变看起来仍然很带条纹,几乎就像颜色范围很低一样,就像它跳过了渐变中的颜色步骤一样。我也尝试过直接在画布上绘制可绘制对象(不使用位图作为媒介),但仍然无法正常工作。我想提到的一个重要细节是,画布不是直接位于活动中,而是位于该活动中的片段视图中的自定义视图中。我之所以提及这一点,是因为在覆盖的内部调用了这些方法。

0 个答案:

没有答案