首页
学习
活动
专区
工具
TVP
发布

Android小知识

专栏作者
103
文章
110945
阅读量
24
订阅数
ConstraintLayout+ViewPager2打造《摇一摇新年幸运签》App
话不多说直接上图 📷 image.png 从图中可知,分为上下两部分,上部分是传统春联和福字,代表对大家的新年祝福,下部分是主要功能模块,包含红包金额、新年幸运签和是与不是。 采用Kotlin语言进行编写,涉及到的技术有:ConstraintLayout、Drawable、 自定义View、Android动画、Viewpager2、字体的设置和传感器的使用。 创意来源 这个创意的来源,主要是年纪大了,过年肯定要给侄子侄女发红包,哈哈哈,这回金额可以他们自己摇出来,具有互动和随机性比较好玩,为新年增添一
longzeqiu
2022-03-08
6540
ConstraintLayout+ViewPager2打造《摇一摇新年幸运签》App
祝各位工程师,虎年大吉,2022年心想事成,想法几经改版,差点流产,还好最后坚持做了出来。
longzeqiu
2022-01-24
1.6K0
关于MaterialButton你需要知道的事
📷 MaterialButton 官网占楼,下面是个人使用的总结 MaterialButton官方文档 首先肯定是导包 implementation 'com.google.android.material:material:1.2.0-alpha06' 包引入以后你就会发现可以在布局里写出MaterialButton控件了 <com.google.android.material.button.MaterialButton android:layout_width="@dimen/
longzeqiu
2022-01-11
7700
算法之旅——地图篇
亲爱的工程师你好,欢迎来到算法世界! 我的主人在算法的世界里闯过了111关,下面是他闯关所绘制的地图,相信你看完以后也可以踏上这趟旅程! 工程师对LeetCode应该并不陌生,当你们掌握了这份地图中的要点,就可以来这里闯关了! 一、序 ①这份地图我的主人想了很久要不要画,答案你们也看到了,原因有二 一则作为记录 二来为将来想要学习算法的新人提供一些帮助 ②为什么要开启这趟旅程 逻辑和思维的提升 爱好 || 消磨时间 面试 ③出发之前我们需要什么装备 基础的数据结构 对应你掌握的语言里的API有哪些 经典的算
longzeqiu
2022-01-10
2550
ViewPager2打造Banner轮播图
📷 效果图 上图是天津地铁APP的Banner也是本文要实现的效果 一、如何使用ViewPager2 ①在app下的build.gradle文件中添加如下依赖 implementation "androidx.viewpager2:viewpager2:1.0.0" ②同步之后就可以在布局中使用啦 <androidx.viewpager2.widget.ViewPager2 android:id="@+id/bannerVp" android:layout_width="match_pare
longzeqiu
2021-11-29
2.1K0
ViewPager2打造轮播Banner
[效果图] 上图是天津地铁APP的Banner也是本文要实现的效果 一、如何使用ViewPager2 ①在app下的build.gradle文件中添加如下依赖implementation "androidx.viewpager2:viewpager2:1.0.0"<androidx.viewpager2.widget.ViewPager2 android:id="@+id/bannerVp" android:layout_width="match_parent" android:la
longzeqiu
2021-11-25
1.6K0
泛型
定义泛型方法:修饰符和返回值类型中间要有<参数类型>,泛型方法可定义在任意位置。 注意 定义在泛型类中的泛型方法,传入的参数类型可以与泛型类传入的类型不同,泛型类传入的类型只影响普通方法。
longzeqiu
2021-11-24
2670
线程池
RejectedExecutionHandler是一个接口,JDK提供了四种实现,如果都不合适,可以自己实现这个接口去处理。
longzeqiu
2021-11-24
5370
2020-07-19
# 最近git clone项目一直报这个错。 * 于是乎为了解决这个问题我找遍了全网,终于解决了 # 首先Fork你想clone的项目 # 打开gitee(码云) # 点击右上角的加号,选择从github/gitlab导入仓库 # 导入之后在进行clone就完全没问题啦! # 如果你也遇到这样的烦恼,可以采用这个方法试一下
longzeqiu
2020-07-21
1991
2020-07-18
# 最近git clone项目一直报这个错。 * 于是乎为了解决这个问题我找遍了全网,终于解决了 # 首先Fork你想clone的项目 # 打开gitee(码云) # 点击右上角的加号,选择从github/gitlab导入仓库 # 导入之后在进行clone就完全没问题啦! # 如果你也遇到这样的烦恼,可以采用这个方法试一下
longzeqiu
2020-07-21
2110
算法刷题篇——Stack
Stack 栈 后进先出(先进后出) Vector的一个子类 创建一个栈 Stack stack = new Stack<包装类型>(); Stack方法|用途 分类 功能 boolean empty() 返回布尔值表示栈是否为空 Object peek() 查看栈顶元素 Object pop() 取出栈顶元素 Object push(Object element) 把元素压入栈 int search(Object element) 从栈顶向下该元素第一次出现的位置 个人刷题方法及总结 去哪刷题 ht
longzeqiu
2020-06-18
5170
Android自定义TextView实现必填项前面的*号
在res目录下的values目录里新建一个xml文件,取名为attrs.xml,代码如下所示: <?xml version="1.0" encoding="utf-8"?> <resources>
longzeqiu
2020-04-24
1.5K0
Paint画笔常用的那些配置
笔 setFlags 含义:这是一个标志,必须写在画的图形生成之前 用法: ①Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); ②Paint paint = new Paint(); paint.setFlags(Paint.ANTI_ALIAS_FLAG); 分类 功能 Paint.ANTI_ALIAS_FLAG 抗锯齿标志 Paint.FILTER_BITMAP_FLAG 使位图过滤的位掩码标志 Paint.DITHER_FLAG 使位图进行有利的抖
longzeqiu
2020-04-09
7670
一个蛋搞懂canvas.drawArc()
Android 中的canvas有很多方法,画圆,画长方形,画椭圆型,那么如果让你画个蛋,你会怎么做呢。 可能你会说drawOval,但是你看这个蛋它明显一头尖一头圆嘛,所以我的思路就是使用drawArc。 思路如下: 把圆看成两半 一半用drawArc画半圆,画笔设置为填充 另一半drawArc画椭圆,画笔设置为填充 两个半圆拼在一起,当当当当鸡蛋的形状出现了! 啰嗦这么多,进入正题看一下drawArc方法 public void drawArc(RectF oval, float startAngle
longzeqiu
2020-04-09
1.7K0
NDK启航篇——C语言终章(文件IO操作)
今天写最后的部分文件IO操作 什么是文件IO 就是对存储在计算机物理上的二进制文件进行读写操作 文件在逻辑上分为文本文件和二进制之分 C读写文本文件与二进制文件的差别仅仅体现在回车换行符 写文本时,每遇到一个\n,会将其转换成\r\n(回车换行) 读文本时,每遇到一个\r\n,会将其转换成\n 读写文本文件 关键函数 fopen(文件路径,"r") r代表读取 fget(缓冲区,每次读取多少,文件地址) fputs(写入的字符,文件地址) fclose(文件地址) //读取文本文件 voi
longzeqiu
2020-04-09
8540
NDK启航篇——C语言基础(联合体)
今天写一下联合体union(比较简单)。 什么是联合体? 不同类型的变量,共同占一段内存(相互覆盖),联合体变量任何时刻只有一个变量存在,所以也叫共用体 联合体的作用 节省内存 联合体的大小 联合体变量的大小等于最大的成员所占的字节数 联合体的定义 union 名字{}; 示例代码如下 union MyValue{ int y; int x; double z; }; void main(){ union MyValue d1; d1.x = 90; d1.y = 100; d
longzeqiu
2020-04-09
3130
NDK启航篇——C语言基础(结构体补充)
继续昨天的内容,把结构体剩下的一点内容写完。 结构体与动态内存分配 struct Man{ char *name; int age; } void main(){ //malloc 返回值默认是void* 所以我们最好写成我们自己的类型 struct Man *m_p = (struct Man*)malloc(sizeof(struct Man) * 10); struct Man *p = m_p; //赋值 p->name = "Tom"; p->age = 10; p
longzeqiu
2020-04-09
3440
NDK启航篇——C语言基础(结构体)
今天来写一下结构体 什么是结构体? 结构体是一种构造数据类型把不同的数据类型整合起来成为一个自定义的数据类型 与Java中的类相似 是C中最复杂的数据类型 结构体的初始化方式 ①声明的同时进行赋值 ②先声明,声明之后赋值 //尖括号代表系统类库,std表示标准,io表示输入输出 引入标准输入输出 #include<stdio.h> //lib表示类库 引入标准类库 #include<stdlib.h> struct Man{ char* name; int age; int (*func)(
longzeqiu
2020-04-09
3030
NDK启航篇——C语言基础(字符串)
我们写程序肯定会用到字符串,那么C中的字符串怎么写呢? C中的字符串写法 字符串数组存储字符串 字符串数组最后要写结束符\0,否则会出现乱码 //尖括号代表系统类库,std表示标准,io表示输入输出 引入标准输入输出 #include<stdio.h> //lib表示类库 引入标准类库 #include<stdlib.h> void main(){ //字符串数组最后要写结束符\0 char str[] = {'b','o','y','\0'}; char str[4] = {'b','o',
longzeqiu
2020-04-02
4760
简单实现微信分享(不集成SDK)
好啦,分享到QQ、微博等等平台也可以参考这种方法哦,完全没必要费时间申请集成三方SDK!
longzeqiu
2020-04-02
2K1
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档