Tho*_*iao 8 android-jetpack-compose compose-desktop
如何在 Kotlin Compose 桌面中从远程 url 加载图像?
在Android中它使用大肠杆菌作为官方样本
@Composable
fun NetworkImage(
url: String,
modifier: Modifier = Modifier,
contentScale: ContentScale = ContentScale.Crop,
placeholderColor: Color? = MaterialTheme.colors.compositedOnSurface(0.2f)
) {
CoilImage(
data = url,
modifier = modifier,
contentScale = contentScale,
loading = {
if (placeholderColor != null) {
Spacer(
modifier = Modifier
.fillMaxSize()
.background(placeholderColor)
)
}
}
)
}
Run Code Online (Sandbox Code Playgroud)
bu 作为桌面应用程序,不支持 aar。
用于javax.imageio.ImageIO从网络加载图像:
import androidx.compose.ui.graphics.ImageBitmap
import androidx.compose.ui.graphics.asImageBitmap
import org.jetbrains.skija.Image
import java.io.ByteArrayOutputStream
import java.net.HttpURLConnection
import java.net.URL
import javax.imageio.ImageIO
fun loadNetworkImage(link: String): ImageBitmap {
val url = URL(link)
val connection = url.openConnection() as HttpURLConnection
connection.connect()
val inputStream = connection.inputStream
val bufferedImage = ImageIO.read(inputStream)
val stream = ByteArrayOutputStream()
ImageIO.write(bufferedImage, "png", stream)
val byteArray = stream.toByteArray()
return Image.makeFromEncoded(byteArray).asImageBitmap()
}
Run Code Online (Sandbox Code Playgroud)
然后将其用作:
Image(
bitmap = loadNetworkImage("Your image link")
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5592 次 |
| 最近记录: |