最好用的安卓按钮(3)

news2024/11/18 8:34:47
属性解释
  • 按钮文字
    app:text=“床前明月光”

  • 按钮文字颜色
    app:textColor=“@color/color_white”

  • 按钮文字大小
    app:textSize=“22sp”

  • 按钮背景颜色
    app:color_normal=“@color/color_accent”

0x2 单独设置每个圆角

效果

代码

<top.androidman.SuperButton
android:layout_width=“match_parent”
android:layout_height=“60dp”
android:layout_margin=“20dp”
app:color_normal=“@color/color_6596ff”
app:corner=“40dp”
app:corner_left_bottom=“0dp”
app:text=“单独设置左下角为0dp”
app:textColor=“@color/color_white”
app:textSize=“22sp” />

属性解释
  • 单独设置左下角角度
    app:corner_left_bottom=“0dp”

  • 单独设置左上角角度
    app:corner_left_top=“5dp”

  • 单独设置右上角角度
    app:corner_right_top=“22dp”

  • 单独设置右下角角度
    app:corner_right_bottom=“0dp”

  • 按钮四个角的圆角角度
    app:corner=“10dp”

注意:单独设置角度会覆盖corner属性

0x3 Selector

效果

代码

<top.androidman.SuperButton
android:layout_width=“match_parent”
android:layout_height=“60dp”
android:layout_margin=“20dp”
android:onClick=“test”
app:color_normal=“@color/color_accent”
app:color_pressed=“@color/color_ffB419”
app:corner=“10dp”
app:text=“点击会变色哦”
app:textColor=“@color/color_white”
app:textSize=“22sp” />

属性解释

  • 当按钮点下时会显示设置的颜色效果
    app:color_normal=“@color/color_accent”

0x4 圆形按钮

效果

代码

<top.androidman.SuperButton
android:layout_width=“160dp”
android:layout_height=“160dp”
android:layout_margin=“20dp”
android:onClick=“test”
app:color_normal=“@color/color_accent”
app:drawable_middle=“@mipmap/icon_like”
app:drawable_middle_height=“50dp”
app:drawable_middle_width=“50dp”
app:shape=“CIRCLE” />

属性解释
  • 按钮上只有图标没有文字
    app:drawable_middle=“@mipmap/icon_like”

  • 按钮上图标高度
    app:drawable_middle_height=“50dp”

  • 按钮上图标宽度
    app:drawable_middle_width=“50dp”

注意:当设置此属性时,文字的相关属性将会失效

0x5 渐变背景的按钮

效果

代码

<top.androidman.superbutton.SuperButton
android:layout_width=“match_parent”
android:layout_height=“60dp”
android:layout_margin=“20dp”
app:color_direction=“RIGHT_LEFT”
app:color_end=“@color/color_14c7de”
app:color_start=“@color/color_red”
app:corner=“20dp”
app:text=“从右到左渐变”
app:textColor=“@color/color_white”
app:textSize=“22sp” />

属性解释
  • 开始颜色
    app:color_start=“@color/color_14c7de”

  • 结束颜色
    app:color_end=“@color/color_red”

  • 颜色渐变方向
    app:color_direction=“RIGHT_LEFT”

  • TOP_BOTTOM 从上到下

  • BOTTOM_TOP 从下到上

  • LEFT_RIGHT 从左到右

  • RIGHT_LEFT 从右到左

  • TR_BL 从右上到左下

  • BL_TR 从左下到右上

  • BR_TL 从右下到左上

  • TL_BR 从左上到右下

注意:当设置颜色渐变时,color_normal,color_pressed设置将失效

0x6 有边框按钮

效果

代码

<top.androidman.SuperButton
android:layout_width=“match_parent”
android:layout_height=“60dp”
android:layout_margin=“20dp”
app:border_color=“@color/color_red”
app:border_width=“2dp”
app:color_normal=“@color/color_accent”
app:corner=“10dp”
app:text=“@string/poetry_1”
app:textColor=“@color/color_white”
app:textSize=“22sp” />

属性解释
  • 边框宽度
    app:border_width=“2dp”

  • 边框颜色
    app:border_color=“@color/color_red”

0x7 按钮不可点击

效果

代码

<top.androidman.SuperButton
android:layout_width=“match_parent”
android:layout_height=“60dp”
android:layout_margin=“20dp”
android:onClick=“test”
app:button_click_able=“false”
app:color_normal=“@color/color_accent”
app:corner=“10dp”
app:singleLine=“false”
app:text=“app:button_click_able=false\n也可以代码设置”
app:textColor=“@color/color_white”
app:textSize=“22sp” />

属性解释
  • 按钮是否可以点击,默认为true可以点击
    app:button_click_able=“false”

  • 按钮文字是否单行,默认为true单行
    app:singleLine=“false”

注意:按钮提供有方法对点击事件进行控制,请参考高级使用里面相关方法

0x8 带图标按钮

效果

代码

<top.androidman.superbutton.SuperButton
android:layout_width=“match_parent”
android:layout_height=“60dp”
android:layout_margin=“20dp”
app:color_normal=“@color/color_red”
app:corner=“20dp”
app:drawable_padding=“20dp”
app:drawable_right=“@mipmap/icon_like”
app:text=“图标在右边”
app:textColor=“@color/color_white”
app:textSize=“22sp” />

属性解释
  • 图标在文字右边
    app:drawable_right=“@mipmap/icon_like”

  • 图标在文字左边
    app:drawable_left=“@mipmap/icon_like”

  • 图标在文字上边
    app:drawable_top=“@mipmap/icon_like”

  • 图标在文字下边
    app:drawable_bottom=“@mipmap/icon_like”

  • 图标距文字距离
    app:drawable_padding=“20dp”

  • 根据文字大小缩放图标,默认为true,当为false时显示原图标大小
    app:drawable_auto=“true”

按钮支持的所有属性
<?xml version="1.0" encoding="utf-8"?>

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

尾声

最后,我再重复一次,如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

最后想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。

当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。

进阶学习视频

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

总要实践的。

进阶学习视频

[外链图片转存中…(img-aefU9Eu8-1712428188747)]

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-uNd0Mwyi-1712428188747)]

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1573560.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考 系统架构设计师系列知识点之数据库基本概念(4)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之数据库基本概念&#xff08;3&#xff09; 所属章节&#xff1a; 第6章. 数据库设计基础知识 第1节 数据库基本概念 6.1.3 数据库管理系统 DBMS&#xff08;DataBase Management System&#xff0c;数据库管理系统&am…

【Linux】SSH协议应用

SSH协议 SSH简介实现OpenSSH ssh中的四个文件~/.ssh文件路径实验解析 SSH 简介 SSH&#xff08;secure shell&#xff09;只是一种协议&#xff0c;存在多种实现&#xff0c;既有商业实现&#xff0c;也有开源实现。本文针对的实现是OpenSSH&#xff0c;它是自由软件&#xf…

ZYNQ实验--CIC插值滤波器实验

一、CIC滤波器介绍 CIC (Cascaded Integrator-Comb) 滤波器是一种常用的数字信号处理滤波器&#xff0c;主要用于降采样&#xff08;decimation&#xff09;和升采样&#xff08;interpolation&#xff09;操作。它具有简单的硬件实现、高效的运算速度以及适用于需要快速处理的…

应届生选导师的创业公司,还是去中厂?

点击上方&#xff0c;选择“置顶/星标公众号” 福利干货&#xff0c;第一时间送达 导师是做自动化设备的控制软件&#xff0c;公司做纯软件。导师能给一样的工资&#xff0c;五人左右团队&#xff0c;潜在收入可能要高一些。纠结哪个对今后的发展更好一些。 大家好&#xff0…

【论文阅读笔记】Mamba模型代码理解

0.开源代码地址 官方实现&#xff1a;state-spaces/mamba (github.com) 最简化实现&#xff1a;johnma2006/mamba-minimal: Simple, minimal implementation of the Mamba SSM in one file of PyTorch. (github.com) 直接实现&#xff1a;alxndrTL/mamba.py: A simple and e…

Java 接口提示500,但console并不报错。

因为习惯了C语言printf打印&#xff0c;且当时并不明白try catch意义所在 如图所示&#xff0c;下添加了行号打印 但只打印出了line 89&#xff0c;无line 91&#xff0c;也无报错 所以使用try catch 包裹Sql查询封装函数 e.printStackTrace(); 果真打印出了 查看Entity类&…

【经典算法】LeetCode25:K 个一组翻转链表(Java/C/Python3,Hard)

#算法 目录 题目描述思路及实现方式一&#xff1a;递归思路代码实现Java 版本C 语言版本Python3 版本 复杂度分析 方式二&#xff1a;迭代和原地反转思路代码实现Java 版本C 语言版本Python3 版本 复杂度分析 总结相似题目 标签&#xff1a;链表、递归 题目描述 给你链表的头…

DFS:floodfill算法解决矩阵联通块问题

floodfill&#xff0c;翻译为洪水灌溉&#xff0c;而floodfill算法本质上是为了解决在矩阵中性质相同的联通块问题。 一、图像渲染 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int dx[4]{0,0,1,-1};int dy[4]{1,-1,0,0};int prev;//记住初始值int m,…

什么是广播系统语言传输指数 STIPA

基础知识 通过广播系统播放一个确定的信号&#xff08;STIPA 测试信号&#xff09;&#xff0c;再在待测点测量其到达后的质量即可。IEC 60268-16 标准中定义通过单一值表示清晰度结果&#xff0c;0 表示完全无法理解&#xff0c;1 表示完美理解。测量单位是 STI&#xff08;语…

C#探索之路基础夯实篇(3):面向对象的三大特性和五大原则详解

文章目录 前提&#xff1a;一、特性&#xff1a;二、原则&#xff1a;三、示例1. 单一职责原则 (Single Responsibility Principle, SRP)&#xff1a;2. 开放-封闭原则 (Open-Closed Principle, OCP)&#xff1a;3. 里氏替换原则 (Liskov Substitution Principle, LSP)&#xf…

移动硬盘能当u盘重装系统吗?做启动数据还能恢复吗

在数字时代&#xff0c;随着技术的不断发展&#xff0c;我们越来越依赖于各种存储设备&#xff0c;其中移动硬盘以其大容量和便携性受到广大用户的青睐。不过&#xff0c;有时我们可能会遇到需要使用U盘来重装系统的情况&#xff0c;而手头又没有合适的U盘。这时&#xff0c;我…

Spring Boot-01-通过一个项目快速入门

官方参考文档&#xff1a;Spring Boot Reference Documentation 0. 概述 Spring的缺点&#xff1a; 1. 配置繁琐&#xff1a;虽然Spring的组件代码是轻量级&#xff0c;但它的配置却是重量级的。 2. 依赖繁琐&#xff1a;项目的依赖管理也是一件耗时耗力的事情。分析要导入哪…

03-JAVA设计模式-工厂模式详解

工厂模式 工厂设计模式是一种创建型设计模式&#xff0c;它提供了一种封装对象创建过程的机制&#xff0c;将对象的创建与使用分离。 这种设计模式允许我们在不修改客户端代码的情况下引入新的对象类型。 在Java中&#xff0c;工厂设计模式主要有三种形式&#xff1a;简单工厂…

【CNN】ConvMixer探究ViT的Patch Embedding: Patches Are All You Need?

Patches Are All You Need? 探究Patch Embedding在ViT上的作用&#xff0c;CNN是否可用该操作提升性能&#xff1f; 论文链接&#xff1a;https://openreview.net/pdf?idTVHS5Y4dNvM 代码链接&#xff1a;https://github.com/tmp-iclr/convmixer 1、摘要 ViT的性能是由于T…

基于Spark中随机森林模型的天气预测系统

基于Spark中随机森林模型的天气预测系统 在这篇文章中&#xff0c;我们将探讨如何使用Apache Spark和随机森林算法来构建一个天气预测系统。该系统将利用历史天气数据&#xff0c;通过机器学习模型预测未来的天气情况&#xff0c;特别是针对是否下雨的二元分类问题。 简介 Ap…

【unity】【C#】延时调用(协程)和场景管理

文章目录 什么是协程协程的应用 - IEnumerator如何控制协程的暂停协程的另一种写法 - Invoke场景管理 多看代码块中的注释 什么是协程 A coroutine alows vou to spreacwhere it left off on the following anc return control toolinencoeframe. 协程允许您将任务分布在多个帧…

Android14应用启动流程(源码+Trace)

1.简介 应用启动过程快的都不需要一秒钟&#xff0c;但这整个过程的执行是比较复杂的&#xff0c;无论是对手机厂商、应用开发来说启动速度也是核心用户体验指标之一&#xff0c;本文采用Android14源码与perfetto工具进行解析。 源码参考地址&#xff1a;Search trace分析工…

【二分查找】Leetcode 在排序数组中查找元素的第一个和最后一个位置

题目解析 34. 在排序数组中查找元素的第一个和最后一个位置 我们使用暴力方法进行算法演化&#xff0c;寻找一个数字的区间&#xff0c;我们可以顺序查找&#xff0c;记录最终结果 首先数组是有序的&#xff0c;所以使用二分法很好上手&#xff0c;但是我们就仅仅使用上一道题…

第四百四十二回 再谈flutter_launcher_icons包

文章目录 1. 概念介绍2. 使用方法3. 示例代码4. 经验与总结4.1 经验分享4.2 内容总结 我们在上一章回中介绍了"overlay_tooltip简介"相关的内容&#xff0c;本章回中将 再谈flutter_launcher_icons包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 …

配置vscode链接linux

1.安装 remote SSH 2.按F1 ssh ljh服务器公网ip 3. 选择保存远端host到本地 某位置 等待片刻后 4. 切换到远程资源管理器中 应该可以看到一台电脑&#xff0c;右键在当前窗口链接&#xff0c;输入你的服务器用户密码后电脑变绿说明远程连接成功 5.一定要登陆上云服务器后再…