首页 > 其他分享 >Android 基础 MaterialButton

Android 基础 MaterialButton

时间:2022-11-04 12:02:17浏览次数:71  
标签:MaterialButton style layout app 基础 content wrap Android android


项目中经常会使用到,给按钮添加边框,点击效果,圆角,icon+文字圆角。
发现系统就有提供好的组件,除了CardView 可以设置。android material design支持库中各种可以直接拿来用的组件。

​meterialDesign 支持库​

下面基于com.google.android.material.button.MaterialButton 这个组件,展示了可以设置的集中效果。

Android 基础 MaterialButton_android

如上,基本上可以满足日常开发。

注意使用过程中,已知问题。

1.设置圆角描边,并且同时设置背景色时,放大会看到背景色超出了圆角边框
2.默认设置的按钮高度没有正常显示,上边距和下边距有默认值,需要去掉默认值。

android:insetTop="0dp" android:insetBottom="0dp"

3.设置enable=false,按钮左边icon彩色会自动变成黑白

代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="10dp"
tools:context=".MaterialButtonActivity">

<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
app:title="MaterialButton"
android:layout_height="40dp" />

<com.google.android.material.button.MaterialButton
android:id="@+id/txt_confirm"
android:layout_below="@+id/txt_tip"
android:layout_marginTop="18dp"
android:insetTop="0dp"
android:insetBottom="0dp"
android:elevation="0dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_width="75dp"
android:layout_height="38dp"
app:strokeWidth="2dp"
app:strokeColor="@color/cardview_dark_background"
app:cornerRadius="37.5dp"
android:backgroundTintMode="src_over"
android:background="@color/colorAccent"
android:textSize="12sp"
android:gravity="center"
android:text="测试"
android:textAllCaps="false"
android:textAppearance="?android:attr/textAppearanceLargeInverse" />

<com.google.android.material.button.MaterialButton
android:layout_marginLeft="10dp"
android:id="@+id/txt_confirm2"
android:layout_below="@+id/txt_tip"
android:layout_marginTop="18dp"
android:padding="0dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_width="75dp"
android:layout_height="38dp"
app:rippleColor="@color/colorAccent"
app:backgroundTint="#ff0f00"
app:cornerRadius="13dp"
android:textSize="12sp"
android:gravity="center"
android:text="测试"
android:textAllCaps="false"
android:textAppearance="?android:attr/textAppearanceLargeInverse" />

<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="IconButton"
app:icon="@mipmap/ucenter_diy_explain" />

<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="IconButton"
android:enabled="false"
app:icon="@mipmap/ucenter_diy_explain" />


<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="UnelevatedButton" />

<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OutlinedButton" />

<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextButton" />

<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="IconButton"
app:icon="@mipmap/ucenter_diy_explain" />


<!-- you填充色,有阴影-->

<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Default" />

<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
style="@style/Widget.MaterialComponents.Button"
android:layout_height="wrap_content"
android:text="Default" />


<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Icon Button"
app:icon="@mipmap/ucenter_diy_explain"
app:iconGravity="textStart"
app:iconSize="24dp"
app:iconPadding="16dp"
app:cornerRadius="40dp"
app:iconTint="#fff"
app:strokeColor="#0F0"
app:strokeWidth="2dp"
app:rippleColor="#00F" />


</LinearLayout>

引用
https://developer.android.google.cn/ android developers


标签:MaterialButton,style,layout,app,基础,content,wrap,Android,android
From: https://blog.51cto.com/u_15861646/5823443

相关文章

  • android 手机 apk安装失败对应码
    下面是从网上找到的几种常见的错误及解决方法:1、INSTALL_FAILED_INVALID_APK:无效的安装包,安装包已损坏请检查安装包是否完整。如果是xpk包,可以通过手动安装xpk来检测一......
  • Android 共享内存(ashmem)持续更新
    Android共享内存(ashmem)前言项目中接入讯飞语音合成,在sdk中看到MemoryFile,了解下用法发现,看到的只是冰山一角。官方介绍:SharedMemoryenablesthecreation,mapping,and......
  • Android kotlin泛型知识点梳理
    前言学习知识需要提前设立目标,带着问题学习才能有的放矢。无论是java的泛型还是kotlin语言的泛型均是写框架,写通用工具类神器。如果不熟悉泛型语法,开发过程中将会遇到很多奇......
  • Android kotlin 类委托 by,by lazy关键
    前言接触kotlin语言也有几年时间了。日常开发工作中也推荐使用kotlin,但是对于一些kotlin语言语法的细节没有进行系统学习。碎片的知识点让工作中屡屡碰壁,前些天开始学习comp......
  • 【AGC】SDK未经用户同意获取AndroidID问题
     1.AGC-接入agc的sdk检测到未经用户同意获取AndroidId的问题。问题背景:开发者接入华为性能管理、崩溃服务、华为分析等SDK后上架小米应用商店被拒,称检测到未经用户同意获取......
  • 【JS基础】关于JS能表示的最大精度的问题
    看了好多文章,我还是比较认可这位博主的说法:https://www.codercto.com/a/107226.html本文只是自己做记录,是篇水文,大家可以直接访问上面链接哦~根据 IEEE754 标准,有......
  • 基础循环:短除法—“倒”数
    题目描述:输入一个正整数N(0<N<2147483647),将这个数倒着合成一个新数后输出。比如:543,倒过来是345(请注意:34500,倒过来是543,不是00543)!思路解析:引入两个变量n,t(注意t要定......
  • React组件基础
    1.组件基本介绍组件是React中最基本的内容,使用React就是在使用组件组件表示页面中的部分功能多个组件可以实现完整的页面功能组件特点:可复用,独立,可组合2.Re......
  • [架构之路-59]:目标系统 - 平台软件 - 基础中间件 - POSIX(可移植操作系统接口)与标准库
    目录​​第1章 POSIX(可移植操作系统接口)概述​​​​1.1什么是POSIX​​​​1.2 发布者-IEEE​​​​1.3标准的下载位置​​​​1.4标准的起源​​​​1.5 谁遵守这个......
  • js基础01
    ExerciseTest01严格检查模式strict'usestrict';//预防js的随意性导致产生的一些问题,必须放在第一行leti=1;//局部变量建议都用let定义数据类型数......