- 博客(19)
- 收藏
- 关注
原创 Android ConstraintLayout约束布局的理解与使用
一、什么是约束布局(ConstraintLayout)ConstraintLayout 是一个使用“相对定位”灵活地确定微件的位置和大小的一个布局,在 2016 年 Google I/O 中面世,它的出现是为了解决开发中过于复杂的页面层级嵌套过多的问题——层级过深会增加绘制界面需要的时间,影响用户体验,以灵活的方式定位和调整小部件。ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小
2021-11-18 14:49:55
8208
原创 Kotlin与Java的几种单例模式
一、饿汉式(线程安全,调用效率高,但是不能延时加载)JAVA例子:public class Test { private static Test test = new Test(); private Test() {} public static Test getInstance() { return test; } // 忽略方法printTest(),仅用来输出 public void printTest() { Sys
2021-10-22 16:31:45
1185
原创 Android 使用 ActivityResult 处理 Activity 之间的数据通信及调起拍照实例
在 Android 中,我们如果想在 Activity 之间双向传递数据,需要使用 startActivityForResult 启动,然后在 onActivityResult 中处理返回,另外申请权限也是类似的步骤。但是这样的处理方式会让我们的代码变得非常复杂,并且也无法保证在 Activity 发送或接收数据时参数的类型安全。ActivityResult 是 Jetpack 提供的一个功能,可以简化 Activity 直接的数据传递 (包括权限申请)。它通过提供类型安全的 contract (协定)
2021-10-21 16:03:44
2360
原创 Android 三方库EventBus的使用
EventBus简述EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。EventBus的使用首先,需要在当前项目的build.gradle下添加依赖代码:implementation 'org.greenrobot:eventbus:3.1.1'其次,可以定义一个消息类(可以传对象或者字符串
2021-04-16 14:24:34
413
原创 Android 三方库lottie、mmkv的使用
lottielottie是Airbnb开源的一个面向 iOS、Android、React Native 的动画库,能实现精美、复杂的动画效果。Android端使用方法首先,需要在当前项目的build.gradle下添加依赖代码:implementation 'com.airbnb.android:lottie:2.8.0'其次,Lottie默认读取Assets中的文件,我们需要把设计导出的动画文件.json 保存在app/src/main/assets文件里。若没有assets文件,则新
2021-04-14 17:26:00
698
1
原创 Android R.mipmap(或drawable或其他).变量
在安卓开发过程中,若R.mipmap.变量该如何操作呢?如下代码:String str = "image";int resID = getResources().getIdentifier(str + , "mipmap", getPackageName());第二个参数可以是mipmap或drawable或其他类型,但不可以是mipmap-hdpi、mipmap-mdpi等等,否则找不到。若在Holder里面使用,则需要将context从Activity传到Adpter再传到Holder中使
2021-04-12 20:11:18
1670
原创 Android 三方库okhttp、gson、glide的使用
okhttpOkhttp是网络请求框架。OkHttp主要有Get请求、Post请求等功能。使用前,需要添加依赖,在当前项目的build.gradle下加入以下代码:implementation 'com.squareup.okhttp3:okhttp:3.5.0' Okhttp的Get请求使用OkHttp进行Get请求只需要完成以下四步:获取OkHttpClient对象OkHttpClient okHttpClient = new OkHttpClient();构造Request对
2021-04-12 20:01:56
1149
原创 Android Handler消息传递机制
Android中只允许UI线程(也就是主线程)修改Activity里的UI组件。实际开发中,新启动的线程需要周期性地改变界面组件的属性值就需要借助Handler的消息传递机制。Handler类Handler类的主要作用:在新启动的线程中发送消息在主线程中获取、处理消息Handler类包含如下方法用于发送、处理消息。handleMessage(Message msg):处理消息的方法。该方法通常用于被重写。hasMessages(int what):检查消息队列中是否包含what属性为指定
2021-04-09 10:59:41
589
1
原创 Android Activity的启动模式及对生命周期的影响
Activity的启动模式(tips:在阅读此文章前,应先对Activity生命周期掌握)在每一个程序的main目录下有一个AndroidManifest.xml文件,这个文件是用来配置Activity的,在配置Activity时可指定android:launchMode 属性,该属性用于配置该Activity的启动模式(或称加载模式)。eg:AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xm
2021-04-07 17:28:57
2140
3
原创 Andriod anim 补间(Tween)动画与Interpolator以及setCustomAnimations方法
补间(Tween)动画Android 使用Animation代抽象的动画类,它包括如下几个子类。AlphaAnimation:透明度改变的动画。创建该动画时要指定动画开始时的透明度、结束时的透明度和动画持续时间。其中透明度可从0变化到1。ScaleAnimation:大小缩放的动画。创建该动画时要指定动画开始时的缩放比(以X、Y轴的缩放参数来表示)、结束时的缩放比(以X、Y轴的缩放参数来表示),并指定动画持续时间。由于缩放时以不同点为中心的缩放效果并不相同,因此指定缩放动画时还要通过pivotX、p
2021-04-07 14:44:37
2471
3
原创 Andriod anim rotate中的属性介绍
RotateAnimation是Andriod中的补间(Tween)动画中的旋转动画使用时,需要在res下新建Android Resource Directtory,并选择anim(如已存在就不需要重复建)。在anim文件夹下new一个Animation Resource File,并在Root element中填写rotate即可。<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.
2021-04-06 15:11:57
795
原创 Andriod anim scale中的属性介绍以及Animation类的属性
ScaleAnimation是Andriod中的补间(Tween)动画中的大小缩放的动画使用时,需要在res下新建Android Resource Directtory,并选择anim(如已存在就不需要重复建)。在anim文件夹下new一个Animation Resource File,并在Root element中填写scale即可。<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.
2021-04-06 14:47:24
969
原创 Andriod anim alpha中的属性介绍
AlphaAnimation是Andriod中的补间(Tween)动画中的透明度改变的动画使用时,需要在res下新建Android Resource Directtory,并选择anim。在anim文件夹下new一个Animation Resource File,并在Root element中填写alpha即可。<?xml version="1.0" encoding="utf-8"?><alpha xmlns:android="http://schemas.android.com/
2021-04-06 11:54:22
775
原创 Andriod anim translate中的属性介绍
TranslateAnimation是Andriod中的补间(Tween)动画中的位移变化的动画使用时,需要在res下新建Android Resource Directtory,并选择anim。在anim文件夹下new一个Animation Resource File,并在Root element中填写translate即可。<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.a
2021-04-06 11:28:13
778
1
原创 JAVA中File读写文件之字节流和字符流
字节流和字符流的区别首先,流的概念就是数据流。字节流和字符流都相当于一个水管,不过在里面通过的是数据。字节流:一次通过1bit,故读写都是一次1bit。支持utf-8。字符流:一次通过2bit,故读写都是一次2bit。因为一个中文是2bit,故设计中文的读取需选择字符流。支持utf-16。字节流的使用1.FileInputStream从File中以字节流的形式读取数据。使用时需要异常处理:FileNotFoundException。2.FileOutputStream从File中以字节流
2021-04-02 15:02:13
797
原创 JAVA多态的理解
Java中多态是其重要的特性之一,其可使得程序有良好的可扩展性实现多态的三个要求要有继承要有重写父类引用指向子类对象class Person { public void eat(){ System.out.println("人要吃饭"); };}class Student extends Person { @Override public void eat(){ System.out.println("学生要吃饭");
2021-03-31 20:06:56
111
原创 JAVA基础中容易踩坑的知识点
final与FinallyFinal用于修饰类、成员变量和成员方法。final修饰的类,不能被继承(String、StringBuilder、StringBuffer、Math,不可变类),其中所有的方法都不能被重写(这里需要注意的是不能被重写,但是可以被重载,这里很多人会弄混),所以不能同时用abstract和final修饰类(abstract修饰的类是抽象类,抽象类是用于被子类继承的,和final起相反的作用);Final修饰的方法不能被重写,但是子类可以用父类中final修饰的方法;Final修饰
2021-03-31 16:03:56
259
1
原创 对Fragment生命周期的理解以及其与Activity的关联
Fragment生命周期的四种状态Fragment和Activity类似,也存在运行状态、暂停状态、停止状态和销毁状态。运行状态:当前Fragment位于前台展示,可见,可获取焦点。暂停状态:其他Activity位于前台,该Fragment可见,不能获取焦点。停止状态:当前Fragment不可见,失去焦点。销毁状态:当前Fragment被删除,或所在Activity被结束。Fragment的回调函数Fragment为11个,与比Activity不同的有5个。分别为:onAttach()
2021-03-31 14:41:00
539
原创 Android Activity的理解
Android Activity的理解Activity 生命周期的四个状态Activity的生命周期分为运行、暂停、停止、销毁四个状态。运行状态:该Activity生命开始,Activity在前台展示,在屏幕上能获取焦点。暂停状态:该Activity部分在前台展示,在屏幕上不能获取焦点。停止状态:该Activity不在前台展示并且无法获取焦点。销毁状态:该Activity结束生命。Activity 生命周期过程中执行的方法Activity在生命周期的过程中,会经历onCreate()、
2021-03-30 11:25:50
707
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅