在我使用 Jetpack Compose 的应用程序中,如何使用现有的库存照片应用程序拍摄照片并存储它?Google 的文档Camera通过使用 提到了已弃用的 API Intent,但他们使用的是旧的视图系统。看起来更新的APICamera2和CameraXAPI 都是为了直接在应用程序中创建自定义相机界面。
Icon尽管可组合项内的可绘制对象是IconButton白色的,但它是黑色的。当前设置的下图显示了背景右上角的垃圾桶图标alpha。我该如何解决这个问题?
@Composable
fun AppImage(
modifier: Modifier = Modifier,
imageUri: Uri = Uri.EMPTY,
contentScale: ContentScale = ContentScale.None,
contentDescription: String? = null,
loadingImage: @Composable (SubcomposeAsyncImageScope.(AsyncImagePainter.State.Loading) -> Unit)? = null,
successResult: @Composable (SubcomposeAsyncImageScope.(AsyncImagePainter.State.Success) -> Unit)? = null,
errorResult: @Composable (SubcomposeAsyncImageScope.(AsyncImagePainter.State.Error) -> Unit)? = null
) {
Card(
modifier = Modifier
.height(250.dp)
.width(350.dp)
.padding(15.dp)
.clickable(
indication = null,
interactionSource = remember { MutableInteractionSource() }) {
},
elevation = 7.dp
) {
Box(
modifier = Modifier
.padding(16.dp)
.wrapContentSize(Alignment.Center)
) { …Run Code Online (Sandbox Code Playgroud) android android-jetpack-compose android-compose-card android-compose-image
如何在Card可组合项上实现下图所示的效果,X例如图标挂在右上角?我不想要圆角,也不想要黑色背景,只想要挂在右上角的图标Card。尽管多次尝试,我还是无法实现这一目标。
SO 上的原始代码
Box(
modifier = Modifier
.background(LightGray)
.padding(16.dp)
.size(88.dp),
contentAlignment = Alignment.TopEnd
) {
Image(
painter = painterResource(
id = R.drawable.ic_launcher_foreground,
),
contentDescription = "",
modifier = Modifier
.align(Alignment.Center)
.clip(RoundedCornerShape(16.dp))
.background(Black)
.size(80.dp),
contentScale = ContentScale.Crop,
)
IconButton(
onClick = {},
modifier = Modifier
.clip(CircleShape)
.background(White)
.align(Alignment.TopEnd)
.size(16.dp)
) {
Icon(
imageVector = Icons.Rounded.Close,
contentDescription = "",
)
}
}
Run Code Online (Sandbox Code Playgroud)
可能的代码结构?
Box(...) {
Card(...) {
Image(...) {
}
}
IconButton(...) {
Icon(...) {
} …Run Code Online (Sandbox Code Playgroud) 我正在使用该Paging 3库,LazyColumn并且我想根据购物清单项目的类别对列表进行排序。在下面的代码中,LazyColumn抱怨它正在期待LazyPagingItems<TypeVariable(T)>该items属性,但发现了List<ShoppingListItem?>。我怎样才能解决这个问题?
可组合的
val lazyListState = rememberLazyListState()
val successItems = allItemsState.allItems?.collectAsLazyPagingItems()
LazyColumn(
state = lazyListState,
modifier = Modifier
.fillMaxWidth(),
contentPadding = PaddingValues(
start = 5.dp,
end = 5.dp,
top = 8.dp,
bottom = 165.dp
),
verticalArrangement = Arrangement.spacedBy(5.dp),
) {
val groupedByCategory = successItems!!.itemSnapshotList.groupBy { it!!.category }
groupedByCategory.forEach { (initial, shoppingListItems) ->
item {
Text(text = initial)
}
items(
items = shoppingListItems, //Throws error at this line
key …Run Code Online (Sandbox Code Playgroud) android android-paging android-jetpack-compose android-paging-3 android-jetpack-compose-lazy-column