Код: Выделить всё
androidApp/src/main/res/
drawable-mdpi/icon.png
drawable-hdpi/icon.png
drawable-xhdpi/icon.png
drawable-xxhdpi/icon.png
drawable-xxxhdpi/icon.png
< /code>
для iOS в Commonmain < /p>
commonMain/composeResources/drawable/
icon.png
icon@2x.png
icon@3x.png
Код: Выделить всё
rememberPngPainter("icon.png")
< /code>
Во -первых, мой подход правильно? Согласно Chatgpt и Gemini, это правильно, но это не работает для части iOS. Согласно AIS, я должен сделать для такой части Android, которая работает: < /p>
@Composable
actual fun rememberPngPainter(name:String) : Painter {
@SDrawableRes
val icon = when(name) {
"icon" -> R.drawable.icon
else -> R.drawable.other_icon
}
return painterResource(id = icon)
}
< /code>
для части iOS, как это: < /p>
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.graphics.painter.BitmapPainter
import androidx.compose.ui.graphics.ImageBitmap
import androidx.compose.ui.graphics.asImageBitmap
import platform.UIKit.UIImage
@Composable
actual fun rememberPngPainter(name: String): Painter {
val icon = when(name) {
"icon" -> "icon.png"
else -> "other_icon.png"
}
val uiImage = UIImage.imageNamed(name)
?: error("Image not found: $imageName")
val imageBitmap: ImageBitmap = uiImage.toImageBitmap()
return BitmapPainter(imageBitmap)
}
< /code>
, который не работает, поскольку нет библиотеки, чтобы использовать < /p>
.toImageBitmap()
< /code>
и chatgpt отвечает "Я не могу вам помочь с этим". Но Gemini дает мне альтернативу использовать < /p>
painterResource(resource = "icon.png")
< /code>
, который также не существует, тогда как Gemini (также AKSED Chagpt) говорит, что это здесь, чтобы найти: < /p>
compose-components-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "1.5.1 or higher" }
< /code>
Я проверил все версии, и когда-либо был какой-либо художественный вход с помощью строкового ввода, только < /p>
fun painterResource(resource: DrawableResource)
Подробнее здесь: https://stackoverflow.com/questions/796 ... tiplatform
Мобильная версия