Compose 可组合项 - 展示类

本文详细介绍了AndroidCompose中的UI组件,包括Text的文本格式化选项,如颜色、字号和样式;Image的图片加载、对齐和裁剪方式;Icon的使用方法,包括自定义图标和官方图标库;以及Divider、Spacer、ProgressIndicator和ListItem等其他组件的用法,展示了Android开发中Compose的强大和灵活性。
摘要由CSDN通过智能技术生成

也是组合函数,而不是以对象的形式提供。

一、文本 Text

查看官方介绍

Text(
    text = "Hello Word!", //显示的文本,从res中加载stringResource(R.string.str)
    color = Color.Red, //文字颜色
    fontSize = 30.sp, //字号
    fontStyle = FontStyle.Italic,   //字体样式(斜体)
    fontFamily = FontFamily.Serif,  //字体,从res中加载FontFamily(Font(R.font.xxx_light,FontWeight.Light), Font(R.font.xxxbold,FontWeight.Bold))
    fontWeight = FontWeight.Bold,   //字重(粗细)
    letterSpacing = 15.sp,  //字间距
    textDecoration = TextDecoration.None,   //文字装饰(Underline下划线,LineThrough删除线)
    textAlign = TextAlign.Center,   //对齐方式(需要有固定宽度才有效果)
    lineHeight = 15.sp, //行高
    overflow = TextOverflow.Clip,   //文字溢出(默认裁剪,Ellipsis末尾省略号,Visible尽可能显示)
    softWrap = true, //是否软换行
    maxLines = 5,   //最大行数
//        onTextLayout = ?
    style = TextStyle(//文本样式(阴影、偏移、模糊)
        shadow = Shadow(color = Blue, offset = Offset(5.0F, 10.0F), blurRadius = 3F), textIndent = TextIndent(20.sp) //行首缩进
    ),
    onTextLayout = { }, //计算布局时回调
    modifier = Modifier
        .background(Color.Gray)//背景色
        .wrapContentSize()//包裹内容
        .fillMaxWidth()//横向填充最大(相当于match_parent)
        .clickable { }//点击事件
)

1.1 支持复制

//默认情况下 Text 是不能进行复制等操作,需要使用 SelectionContainer 来包装。 
SelectionContainer(
    Text(text = "")
)

1.2 设置不同样式

Text(
    text = buildAnnotatedString {
        withStyle(style = SpanStyle(Color.Red)) { append("红色的字") }
        withStyle(style = SpanStyle(Color.Blue)) { append("蓝色的字") }
    }
)

1.3 文字垂直居中

Modifier.wrapContentHeight (align = Alignment.CenterVertically)

二、图片 Image

Image(
    painter = painterResource(id = R.drawable.icon_scan),
    contentDescription = null,  //无障碍提示文本信息,不需要可直接赋值null
    alignment = Alignment.Center,   //对齐方式
    contentScale = ContentScale.Crop,   //伸展方式
    alpha = 0.5F,   //透明度
    colorFilter = ColorFilter.tint(Color.Red, blendMode = BlendMode.Color), //将某种颜色应用到图片上(颜色滤镜)
//        filterQuality = FilterQuality.Low,  //采样算法(默认低,bitmap来源才能用)
    modifier = Modifier
        .width(200.dp)  //宽
        .height(200.dp) //高
        .size(200.dp)   //同时设置宽高(正方形)
        .clip(CircleShape)  //裁剪成圆形
        .border(width = 2.dp, color = Color.Red, shape = CircleShape)   //边框
)

2.1 加载网络图片

//使用coil加载网络图片
AsyncImage(
    model = "https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png",
    contentDescription = null
)

三、图标 Icon

使用官方图标库需要引入依赖。

implementation 'androidx.compose.material:material-icons-extended'
//引用res资源
Icon(
    painter = painterResource(id = R.drawable.icon_scan),
    contentDescription = null,
    modifier = Modifier,
    tint = Color.Red    //给图标染色
)
//引用官方图标库
Icon(imageVector = Icons.Default.AccountBox, contentDescription = "")
//引用ImageBitmap
val bitmap = ImageBitmap.imageResource(res = LocalContext.current.resources, id = R.drawable.icon_scan)
Icon(bitmap = bitmap, contentDescription 

四、分割线 Divider

fun HorizontalDivider(

    modifier: Modifier = Modifier,

    thickness: Dp = DividerDefaults.Thickness,        //厚度

    color: Color = DividerDefaults.color        //颜色

)

横向分割线

fun VerticalDivider(
    modifier: Modifier = Modifier,
    thickness: Dp = DividerDefaults.Thickness,
    color: Color = DividerDefaults.color
)

纵向分割线

HorizontalDivider(
    modifier = Modifier
    color = Color(0xFF77BAF7),
    thickness = 3.dp
)

五、空白区域 Spacer

一个空白区域,使用 Modifier 的 width、height、size 来设置大小。

Spacer(
    modifier = Modifier
        .width(10.dp)   //宽
        .height(10.dp)  //高
        .size(10.dp)    //同时设置宽高(正方形)
)

六、圆形进度条 ProgressIndicator

CircularProgressIndicator(
    progress = 0.6F,    //控制进度,不传参会一直转
    modifier = Modifier,
    color = Color.Magenta,   //圈圈颜色
    strokeWidth = 5.dp  //圈圈厚度
)

七、条形进度条 LinearProgressIndicator

LinearProgressIndicator(
    progress = 0.8F,    //控制进度,不传参会一直流动
    modifier = Modifier,
    color = Color.Red,  //进度颜色
    trackColor = Color.Blue //剩余颜色
)

 八、列表条目 ListItem

ListItem(
    modifier = Modifier,
    headlineText = { Text(text = "headline") },
    overlineText = { Text(text = "overline") },
    supportingText = { Text(text = "supporting") },
    leadingContent = { Text(text = "leading") },
    trailingContent = { Text(text = "trailing") },
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值