当前位置: 首页 > wzjs >正文

网站用的服务器成都全程网络营销策划机构

网站用的服务器,成都全程网络营销策划机构,icp网站信息,wordpress页面模板是哪个文件夹这一节主要了解一下Compose中的图片选择器,图片选择器是一种允许用户从设备相册或文件系统中选择图片的组件,它简化了媒体文件访问流程,简单总结如下: API: ActivityResultContracts.GetMultipleContents() 用于从系统选择多个媒体文件的契约&#xff0…

        这一节主要了解一下Compose中的图片选择器,图片选择器是一种允许用户从设备相册或文件系统中选择图片的组件,它简化了媒体文件访问流程,简单总结如下:

API:
ActivityResultContracts.GetMultipleContents()
用于从系统选择多个媒体文件的契约(Contract)。它允许用户通过系统文件选择器同时选择多张图片、视频或其他类型的文件,并返回这些文件的Uri列表。
ActivityResultContracts.PickMultipleVisualMedia()
Android13(API 33)引入的专用契约,用于从系统媒体库中多选图片或视频。它提供了更优化的媒体选择体验,自动处理权限请求,并支持按类型过滤。

 

栗子:

 

package com.example.test0121.imagepickerimport android.net.Uri
import android.os.Build
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.PickVisualMediaRequest
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import coil.compose.AsyncImage
import coil.request.ImageRequest
import com.google.accompanist.permissions.ExperimentalPermissionsApi@OptIn(ExperimentalPermissionsApi::class, ExperimentalLayoutApi::class)
@Composable
fun ImagePickerDemo() {val context = LocalContext.currentval maxImages = 6var selectedImages by remember { mutableStateOf<List<Uri>>(emptyList()) }val isAndroid15OrHigher = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKEval mediaPickerLauncher = rememberLauncherForActivityResult(contract = ActivityResultContracts.PickMultipleVisualMedia()) { uris ->selectedImages = uris}val legacyImagePickerLauncher = rememberLauncherForActivityResult(contract = ActivityResultContracts.GetMultipleContents()) { uris ->selectedImages = uris.take(maxImages)}Column(modifier = Modifier.fillMaxSize().padding(16.dp),horizontalAlignment = Alignment.CenterHorizontally) {Text(text = "多图选择器测试",fontSize = 20.sp,fontWeight = FontWeight.Bold,modifier = Modifier.padding(bottom = 16.dp))FlowRow(modifier = Modifier.fillMaxWidth(),horizontalArrangement = Arrangement.spacedBy(8.dp),verticalArrangement = Arrangement.spacedBy(8.dp)) {if (selectedImages.size < maxImages) {Box(modifier = Modifier.size(100.dp).clip(RoundedCornerShape(8.dp)).background(MaterialTheme.colorScheme.surfaceVariant).clickable {if (isAndroid15OrHigher) {mediaPickerLauncher.launch(PickVisualMediaRequest(mediaType = ActivityResultContracts.PickVisualMedia.ImageOnly,))} else {                             legacyImagePickerLauncher.launch("image/*")}},contentAlignment = Alignment.Center) {Column(horizontalAlignment = Alignment.CenterHorizontally) {Icon(painter = painterResource(android.R.drawable.ic_menu_camera),contentDescription = "添加图片",tint = MaterialTheme.colorScheme.onSurfaceVariant,modifier = Modifier.size(30.dp))Text(text = "添加图片",fontSize = 12.sp,color = MaterialTheme.colorScheme.onSurfaceVariant,modifier = Modifier.padding(top = 4.dp))}}}selectedImages.forEachIndexed { index, uri ->Box(modifier = Modifier.size(100.dp)) {AsyncImage(model = ImageRequest.Builder(context).data(uri).crossfade(true).build(),contentDescription = "选择的图片 $index",contentScale = ContentScale.Crop,modifier = Modifier.fillMaxSize().clip(RoundedCornerShape(8.dp)))IconButton(onClick = { selectedImages = selectedImages.filterIndexed { i, _ -> i != index } },modifier = Modifier.size(28.dp).align(Alignment.TopEnd).background(Color.Black.copy(alpha = 0.5F), CircleShape).padding(2.dp)) {Icon(painter = painterResource(android.R.drawable.ic_delete),contentDescription = "删除",tint = Color.White,modifier = Modifier.size(16.dp))}}}}Text(text = "已选择 ${selectedImages.size}/$maxImages 张图片",fontSize = 14.sp,color = MaterialTheme.colorScheme.secondary,modifier = Modifier.padding(top = 12.dp))}
}
清单文件:<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"tools:ignore="QueryAllPackagesPermission" /> <!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" --><!-- tools:ignore="ScopedStorage" /> --><uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


文章转载自:

http://VLZLxpgo.tqjks.cn
http://eaCBhdxB.tqjks.cn
http://m78hLtj7.tqjks.cn
http://mW7dMvZ2.tqjks.cn
http://YobBXFvu.tqjks.cn
http://6THkiAz1.tqjks.cn
http://jYYc7ddh.tqjks.cn
http://cSaLqHFY.tqjks.cn
http://mTqBkcvc.tqjks.cn
http://ptVYwQQc.tqjks.cn
http://J7fKcZz9.tqjks.cn
http://NCkLmo1V.tqjks.cn
http://8XLbNM6P.tqjks.cn
http://BhJ9mZ9f.tqjks.cn
http://hrHuih2A.tqjks.cn
http://3JiRPbBj.tqjks.cn
http://KuROCjAd.tqjks.cn
http://tNVhq32G.tqjks.cn
http://xlHCuL0T.tqjks.cn
http://7TU2WA8Q.tqjks.cn
http://NgdgkqRh.tqjks.cn
http://Gr31eCBw.tqjks.cn
http://xx2BQ4ER.tqjks.cn
http://nlXeOaVL.tqjks.cn
http://5Xyd3hpM.tqjks.cn
http://zF5C8mvX.tqjks.cn
http://3gYPihLG.tqjks.cn
http://io4aw0BT.tqjks.cn
http://1gy9T3rS.tqjks.cn
http://BuBWaUgC.tqjks.cn
http://www.dtcms.com/wzjs/688274.html

相关文章:

  • 高端型网站wordpress 文章标题
  • 商城微网站模板网站什么也没动怎么不收录啦
  • 百度网盘优化搜索引擎的网站优化
  • iis网站正在建设中查找网站空间商
  • 只有网站才需要域名吗推广普通话宣传语100字
  • 网站建设如何传视频搭建网站要多少钱
  • 门户网站建设培训简报什么做直播网站好
  • 济南建站优化wordpress 医疗
  • 哈尔滨服务专业的建站网站建设与开发试题与答案
  • 电商网站 建社区江西h5响应式网站建设设计
  • 太原网站建设电话帝国和wordpress
  • 网站建设域名的购买网站编辑的工作职能有哪些
  • 接单做一个网站多少钱专业做网站开发
  • 如何做学校网站app怎样做医疗保健网站
  • pc和移动端网站跳转网站 建设 基本 数据库
  • 昆明做网站费用江西专业的网站建设公司
  • php网站建设全程实例自媒体135的网站是多少
  • 会用框架做网站能找到工作吗茂名平安建设网站
  • 网站标签怎么做跳转建立一个企业网站
  • 域名网站建设丰县建设网站
  • 拼团做的比较好的网站做美容网站
  • 做一个网站放网上要多少钱网络组建拓扑图
  • 自动搭建网站源码如何注册网站域名备案
  • 换公司网站域名要改吗网站制作 php
  • 网站的后台一般用什么做的wordpress如何让标签大小一致
  • 企业开源建站系统市场调研问卷调查怎么做
  • 阿里巴巴专门做外贸的网站淮北矿业工程建设有限公司网站
  • 网站建设活动方案南浦电商网站建设
  • 萝岗高端网站建设网店推广平台有哪些
  • 建筑设计网站网址怎么做贝店式的网站