簡體   English   中英

在 Jetpack Compose 中繪制像素藝術

[英]Draw pixel art in Jetpack Compose

我需要在 Image 中禁用過濾才能正確顯示像素藝術。 我該怎么做?

我曾經在這個答案這樣做:

val DRAW_FILTER = PaintFlagsDrawFilter(Paint.FILTER_BITMAP_FLAG, 0)

@SuppressLint("RestrictedApi")
class AliasingDrawableWrapper(wrapped: Drawable) : DrawableWrapper(wrapped) {
    override fun draw(canvas: Canvas) {
        val oldDrawFilter = canvas.drawFilter
        canvas.drawFilter = DRAW_FILTER
        super.draw(canvas)
        canvas.drawFilter = oldDrawFilter
    }
}

imageView.setImageDrawable(AliasingDrawableWrapper(drawable)

至少現在堡壘,你不能。 Jetpack Compose 使用在打開反別名標志的情況下創建的共享畫圖。

我打開了一個問題,詢問是否可以設置我們自己的標志: https : //issuetracker.google.com/issues/172473708

這是AndroidPaint.kt Compose 的聲明:

internal fun makeNativePaint() =
    android.graphics.Paint(android.graphics.Paint.ANTI_ALIAS_FLAG)

由於 Compose 1.1.0-alpha01 Image 采用可選的 FilterQuality 參數。 將 FilterQuality.None 用於像素藝術:

Image(
    ...,
    filterQuality = FilterQuality.None
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM