Android - векторный рисованный градиент на холсте выглядит полосатым - PullRequest
0 голосов
/ 03 октября 2018

Использование векторного рисования

<?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);
}

Градиент по-прежнему выглядит очень полосатым, почти какДиапазон цветов очень низкий, как будто пропускает шаги цветов в градиенте.Я также попытался нарисовать нарисованный объект непосредственно на холсте (без использования растрового изображения в качестве носителя), и он все еще не работал.Я хотел бы упомянуть одну важную деталь: мой холст находится не внутри моей деятельности, а в пользовательском представлении, которое находится во фрагментном представлении внутри этого действия.Я упоминаю об этом из-за методов, вызываемых внутри переопределенных.

...