我有以下预览功能:
@Preview@Composablefun PreviewScreen(){ Icon(bitmap = /*ImageBitmap instance*/, null)}
@Preview
@Composable
fun PreviewScreen(){
Icon(bitmap = /*ImageBitmap instance*/, null)
}
字符串要获取ImageBitmap instance,我必须访问资源以获取可绘制对象。但我只能从Activity之类的上下文获取它们。
ImageBitmap instance
那么,我如何预览需要资源的组合?我如何在compose中的预览函数中获得资源?
cyej8jka1#
您可以使用ImageVector,然后像XML一样使用Drawable资源。
ImageVector
XML
Drawable
示例
@Preview@Composablefun Stack011(modifier: Modifier = Modifier) { Icon(imageVector = ImageVector.vectorResource(id = R.drawable.YOUR_IMAGE), null)}
fun Stack011(modifier: Modifier = Modifier) {
Icon(imageVector = ImageVector.vectorResource(id = R.drawable.YOUR_IMAGE), null)
字符串
ttygqcqt2#
在Jetpack Compose中,您可以使用多个Icon重载。其中一个重载接受Painter类型的参数。在它的帮助下,您可以在不使用Context的情况下显示来自资源的图像。实现中的其他重载将输入参数转换为Painter类型,因此如果您对它感到满意,您也可以使用它们。举例来说:
Icon
Painter
@Preview@Composablefun PreviewScreen() { Icon( painter = painterResource(id = R.drawable.ic_launcher_background), contentDescription = null, tint = Color.Unspecified )}
fun PreviewScreen() {
Icon(
painter = painterResource(id = R.drawable.ic_launcher_background),
contentDescription = null,
tint = Color.Unspecified
)
rwqw0loc3#
我可以像下面这样从LocalContext获取上下文:
LocalContext
@Preview@Composablefun PreviewScreen(){ val value = LocalContext.current.resources.getDrawable(R.drawable.drag_svgrepo_com, null) Icon(bitmap = value.toBitmap().asImageBitmap(), null)}
val value = LocalContext.current.resources.getDrawable(R.drawable.drag_svgrepo_com, null)
Icon(bitmap = value.toBitmap().asImageBitmap(), null)
3条答案
按热度按时间cyej8jka1#
您可以使用
ImageVector
,然后像XML
一样使用Drawable
资源。示例
字符串
ttygqcqt2#
在Jetpack Compose中,您可以使用多个
Icon
重载。其中一个重载接受Painter
类型的参数。在它的帮助下,您可以在不使用Context的情况下显示来自资源的图像。实现中的其他重载将输入参数转换为Painter
类型,因此如果您对它感到满意,您也可以使用它们。举例来说:
字符串
rwqw0loc3#
我可以像下面这样从
LocalContext
获取上下文:字符串