类人动物混合模式无法正常工作

时间:2019-03-29 14:38:44

标签: android drawing android-canvas

我尝试过的所有混合模式几乎都无法正常工作。以下是其中一些。请记住,dst =绿色,src =红色。

没有混合
enter image description here

DST,DST_IN(对于DST,此结果是正确的,但对于DST_IN,则不是)
enter image description here

SRC(不良结果)
enter image description here

我的观点:

import android.content.Context
import android.graphics.*
import android.util.AttributeSet
import android.view.View

class MyView(context: Context?, attrs: AttributeSet?) : View(context, attrs) {
    val blendPaint = Paint()
    val simplePaint = Paint()
    init {
        blendPaint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_IN)
        blendPaint.color = Color.argb(255,255,0,0)
        simplePaint.color = Color.argb(255,0,255,0)
    }

    override fun onDraw(canvas: Canvas?) {
        super.onDraw(canvas)
        canvas!!.drawRect(Rect(0, 0, 400, 400), simplePaint)
        canvas.drawRect(Rect(200, 200, 600, 600), blendPaint)
    }


    private fun mutableBitmap(resId: Int): Bitmap {
        val immutable = BitmapFactory.decodeResource(this.resources, resId)
        return immutable.copy(Bitmap.Config.ARGB_8888, true)
    }

}

我的布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">
        <com.example.scrp01.com.example.scrp01.MyView
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
</FrameLayout>

这是一个新创建的项目,完全没有对AndroidManifest进行任何更改,并在API 26 Android 8.0,CPU x86上运行。 Android Studio版本3.3.2

您可以在这里看到合适的结果:https://developer.android.com/reference/android/graphics/BlendMode.html#SRC

0 个答案:

没有答案