Android Material 常用组件详解(五)—— MaterialButton、MaterialButtonToggleGroup、ShapeableImageView 使用详解

本文详细介绍了Android Material Design中的MaterialButton、MaterialButtonToggleGroup和ShapeableImageView的使用。MaterialButton允许直接在XML中配置圆角和描边属性,解决了传统方式维护困难的问题。MaterialButtonToggleGroup用于管理一组按钮,可控制是否多选,并提供选中回调。ShapeableImageView是官方提供的带有形状和描边功能的ImageView,支持圆角、裁切和描边设置,通过shapeAppearance和shapeAppearanceOverlay属性实现各种复杂样式。
摘要由CSDN通过智能技术生成

1.MaterialButton

我们平时写布局,当遇到按钮需要圆角、或者描边等,通常的方法是新建一个xml文件,在shape标签下写,然后通过android:background或setBackground(drawable)设置。如果我们每个界面都新建个xml写shape,那么后期项目大了,维护起来就像无底洞。那么有没有这样一个控件,能在xml直接配置圆角、描边属性,满足平时开发的基本UI需求?刚好MaterialButton控件符合上面的要求。

直接使用

      <com.google.android.material.button.MaterialButton
          android:id="@+id/material_button"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="MaterialButton"/>

在这里插入图片描述
公开属性如下:

属性 描述
app:backgroundTint 背景着色
app:backgroundTintMode 着色模式
app:strokeColor 描边颜色
app:strokeWidth 描边宽度
app:cornerRadius 圆角大小
app:rippleColor 按压水波纹颜色
app:icon 图标icon
app:iconSize 图标大小
app:iconGravity 图标重心
app:iconTint 图标着色
app:iconTintMode 图标着色模式
app:iconPadding 图标和文本之间的间距

关于insetTop、insetBottom
看下面的代码:

<com.google.android.material.button.MaterialButton
	android:id="@+id/btn1"
    android:layout_width="150dp"
    android:layout_height="50dp"
    android:textColor="@android:color/white"
    android:textSize="18sp"
/>

xml预览图:
在这里插入图片描述

有没有感觉怪怪的?貌似button上下多了一个padding!咦!代码里面明明没有设置padding啊!看了源码发现,MaterialButton默认在style指定了insetTop和insetBottom为6dp,使得height看起来并没有Button实际设置值一样高,可以在xml将MaterialButton的insetTop和insetBottom都设置为0dp,这样MaterialButton的高度就和实际设置的高度一致了。

关于阴影
MD组件默认都是自带阴影的,MaterialButton也不例外。但是有时候我们并不想要按钮有阴影,那么这时候可以指定style为
style="@style/Widget.MaterialComponents.Button.UnelevatedButton",这样就能去掉阴影,让视图看起来扁平化。

2.MaterialButtonToggleGroup

MaterialButtonToggleGroup可包含一组button

    <com.google.android.material.button.MaterialButtonToggleGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:singleSelection="true">
      <Button
          style="?attr/materialButtonOutlinedStyle"
          android:layout_width="wrap_content
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值