代码编织梦想

关注我,会持续发布关于Android学习的内容!


前言

本节我们来学习安卓(Android)的几种常用的组件,包括MaterialButton(按钮),MaterialButtonToggleGroup(按钮组布局),TextView(文本控件),ImageView(图片控件)的一些基础组件的使用,快来一起学习吧。


一、MaterialButton

MaterialButton Google SDK28 推出的新控件,当遇到按钮需要 圆角 、 或者描边 等,就不必使用 xml 文件或者 Github 上找第三方库实现。
效果预览

 依赖注入

com.google.android.material:material:1.3.0

 继承关系

java.lang.Object
↳android.view.View
 ↳android.widget.TextView
 ↳android.widget.Button
 ↳androidx.appcompat.widget.AppCompatButton
 ↳com.google.android.material.button.MaterialButton
MaterialButton 继承 AppCompatButton, 所以它拥有 AppCompatButton 所有的特性,且 在其基础上做了一些扩展,如圆角、描边、前置和后置 icon (支持设置 Size Tint Padding 、 Gravity 等),还支持按压水波纹并且自定义颜色。
关键属性

 注意事项

1、不可以使用 android:background 设置按钮背景,会破坏 MaterialButton 本身的 绘制,而设置背景则推荐使用 app:backgroundTint
2、 MaterialButton 创建后,按钮实际长度并不是设定值,因为它上下有留空,可以使用
android:insetBottom="0dp" android:insetTop="0dp" 去除
3、 去除阴影
MD 控件默认有阴影效果,但是有时候我们并不想要按钮有阴影,那么这时候可以指定 style
style="@style/Widget.MaterialComponents.Button.UnelevatedButton" 这样就能去掉阴影,让视图看起来扁平化

二、MaterialButtonToggleGroup

效果预览

 

继承关系 

java.lang.Object
 ↳android.view.View
 ↳android.view.ViewGroup
 ↳android.widget.LinearLayout
 ↳
com.google.android.material.button.MaterialButtonToggleGroup
类似一个 LinearLayout ,但只能添加 MaterialButton ,只有第一个子元素的最 左边角和最后一个子元素的最右边角才能保留它们的形状外观圆角大小,类似于 iOS 中的 SegmentedControl , 用户可以从组中选择一个或多个选项。
公开属性

tab切换监听

MaterialButtonToggleGroup materialButtonToggleGroup =
findViewById(R.id.toggleGroup);
materialButtonToggleGroup.addOnButtonCheckedListener(new
MaterialButtonToggleGroup.OnButtonCheckedListener() {
 @Override
 public void onButtonChecked(MaterialButtonToggleGroup group, int
checkedId, boolean isChecked) {
 Toast.makeText(MainActivity.this, "ID:" + checkedId + ",
checked:" + isChecked, Toast.LENGTH_SHORT).show();
 }
});

三、TextView 文本组件

常用属性

 效果演示

<TextView
 android:layout_width="500dp"
 android:layout_height="wrap_content"
 android:layout_marginTop="50dp"
 android:background="@color/purple_700"
 android:drawableLeft="@drawable/ic_notifications_black_24dp"
 android:drawableTop="@drawable/ic_dashboard_black_24dp"
 android:drawableRight="@drawable/abc_vector_test"
 android:drawableBottom="@drawable/ic_home_black_24dp"
 android:drawableTint="@color/white"
 android:ellipsize="marquee"
 android:gravity="center"
 android:singleLine="true"
 
android:text="11111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111"
 android:textColor="@color/white"
 android:textSize="16sp"
 android:textStyle="bold" />

四、ImageView控件

常见属性

 

 

很多人都觉得 fitCenter centerInside 没有区别,根据上面的效果图来分
析,其实是有区别的。
fitCenter : 是将原图等比例放大或缩小,使原图的高度等于 ImageView 的高
度,并居中显示 centerInside :在原图的原本长宽大于 ImageView 的长宽时,则缩小原图,
效果同 fitCenter ;在原图的长宽小于 ImageView 的长宽时,则不进行任何处
理,居中显示,效果同 center

总结

本章大概介绍了几种基本组件的使用,学完之后赶紧用起来啊。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_58941767/article/details/128004641

android零基础入门第54节:视图切换组件viewswitcher_鑫鱻的博客-爱代码爱编程

   前面三期学习了ProgressBar系列组件,那本期开始一起来学习ViewAnimator组件。 一、ViewAnimator组件概述     ViewAnimator是一个基类,它继承了 FrameLayout,因此它表现出FrameLayout的特征,可以将多个View组件叠在一起。 ViewAnimator额外

android零基础入门第78节:四大组件的纽带——intent_鑫鱻的博客-爱代码爱编程

   前面学习Activity时己经多次使用了 Intent,当一个Activity需要启动另一个Activity时, 程序并没有直接告诉系统要启动哪个Activity,而是通过Intent来表达自己的意图:需要启动哪个Activity。     Intent不仅是封装Android应用程序需要启动某个组件的“意图”,还是应用程序组件之间通信的重要媒

android:项目模块化/组件化的架构之路(一)_code满满的博客-爱代码爱编程_android 模块化

文章目录 前言推荐模块化需要做什么一、如何拆分项目二、模块之间的通信1. 常用的通信方式2. 改善通信方式2.1 使用接口进行通信2.2 如何对外暴露接口2.3 使用EventBus时,自建简单的事件索引

android:项目模块化/组件化的架构之路(二)_code满满的博客-爱代码爱编程_android模块化框架

推荐文章 《Android:项目模块化/组件化的架构之路(一)》 文章将率先在公众号「Code满满」上发布,欢迎大家关注! 项目模块化的两种模式 目前项目模块化大体可以分为两种模式,分别是submodule和mult

android学习笔记:android基础知识点(不断更新中)_浩比浩比的博客-爱代码爱编程_android学习笔记

1、Android学习笔记:OkHttp 2、Android学习笔记:更新UI的方法(UI线程和非UI线程) 3、Android学习笔记:Volley 4、Android学习笔记:Handler 5、Android学习

android 常见面试题(二)_别碰我的idea的博客-爱代码爱编程

介绍: 上一篇博客分享了一些面试题,今天接着分享一些常见的android面试题 1)什么是ANR 如何避免它?(Android线程间的通信方式 ) 答:ANR:Application Not Responding(应用程序无响应).当出现下列情况时,Android就会显示ANR对话框了: 对输入事件(如按键、触摸屏事件)的响应超过5秒 意向接受器(i

Android:常见的几种组件获取text方法。-爱代码爱编程

常见的几种组件获取text方法。        首先给各组件设置唯一的标识id,然后在onCreate方法中获取组件对象,再通过对应方法获取组件的text。注:为方便理解,这里我所有的组件的id都设为name 1、获取TextView组件的text //根据id获取TextView对象 TextView textView=findViewById(R.

[Android Studio]掌握Android Studio的五种常见控件和五种常见布局-爱代码爱编程

目录 一、View和ViewGroup二、Android的五种常见控件2.1 文本控件2.1.1 TextView2.1.2 EditText2.2 按钮控件2.2.1 Button2.2.2 RadioButton2.2.3 CheckBox2.3 图片控件2.3.1 ImageView2.4 列表控件2.4.1 ListView2.4.2 Sp

“终于懂了” 系列:Android组件化,全面掌握!-爱代码爱编程

一、背景 随着项目逐渐扩展,业务功能越来越多,代码量越来越多,开发人员数量也越来越多。此过程中,你是否有过以下烦恼? 项目模块多且复杂,编译一次要5分钟甚至10分钟?太慢不能忍?改了一行代码 或只调了一点UI,就要run整个项目,再忍受一次10分钟?合代码经常发生冲突?很烦?被人偷偷改了自己模块的代码?很不爽?做一个需求,发现还要去改动很多别人模块的代

Android 12上焕然一新的小组件:美观、便捷和实用-爱代码爱编程

Google IO 2021上重磅介绍的Android 12,号称历代设计变化最大的版本。其全新的Material You设计语言、流畅的动画特效再到焕然一新的小组件,都令人印象深刻。本文将聚焦小组件环节,谈谈它在重新设计之后的各种新特性和适配方法。 小组件在Android平台上命名为AppWidget,有的时候还被翻译成小部件、小插件和微

android动态设置控件高度,Android动态设置控件长宽比的几种常见方法-爱代码爱编程

我们在日常的开发中经常需要根据设备的大小来确定控件大小,或者根据控件已知的长宽设置其他控件长宽,这里记录几种常见的方法: 根据设备宽度和长度确定控件大小 例如现在想把某个图片设置成宽度和屏幕宽度一样,长度是宽度的一半 假设img所处布局为LinearLayout ImageView img = //smth int width = img.g

android跨进程通讯方法,Android跨进程通讯的几种方式-爱代码爱编程

Android系统的每个应用都是运行在一个单独的虚拟机中(不同的进程)。因此不同的app间不能直接通讯,但是可以间接进行通讯。 今天我要介绍的四种跨进程通讯方式就是四种间接通讯方式。这四种跨进程通讯的方式, 方式一:Bundle。 bundle实现了parcelable接口,在Android中不同的应用运行在不同的进程中。通过Intent启动其他

Android 四大组件-爱代码爱编程

Android四大组件 1、Activity 1.1 初始Activity Activity 是什么? Activity有什么作用? 用户和应用程序交互的接口摆放各种空间的容器 怎样创建Activity? 继承Activity 重写onCreate()方法 为Activity提供布局xml文件 清单文件中配置 创建Other

day2:UI组件几种常见的布局管理器-爱代码爱编程

目录 一、线性布局(LinearLayout) 1、android:orientation属性 2、android:layout_gravity属性 3、android:layout_weight属性 二、相对布局(RelativeLayout) 1、相对于父布局进行定位  2、相对于组件进行定位 三、帧布局(FrameLayout) 四

Android面试题:四大组件-爱代码爱编程

1、Activity 与 Fragment 之间常见的几种通信方式 答:1.使用Bundle:在activity中建一个bundle,把要传的值存入bundle,然后通过fragment的setArguments(bundle)传到fragment,在fragment中,用getArguments接收。这个方法能保证在 fragment 销毁重建后依然能

android移动开发基础第二版-课后习题_wuyongheng57kg的博客-爱代码爱编程

第1章  Android基础入门 填空题 1.Dalvik虚拟机中的Dx工具会把部分class文件转换成__dex____文件 2.如果希望在XML布局文件中调用颜色资源文件,可以使用_ @color___调用 3.Android程序入口的Activity是在_AndroidManifest.xml_____文件中注册的 4.Android中查看

android零基础入门第62节:搜索框组件searchview-爱代码爱编程

一、SearchView概述     SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当用户输入完成后提交搜索时,也可通过监听器执行实际的搜索。     SearchView默认是展示一个search的icon,点击icon展开搜索框,也可以自己设定图标。用SearchView时可指定如下表所

android面试基础二-爱代码爱编程

Android 面试基础一 目录 Android源码相关分析1、Android属性动画实现原理2、补间动画实现原理3、Android各个版本API的区别4、Requestlayout,onlayout,onD