自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 Android View 事件体系 一

Android View 事件体系 一这里我会从以下角度记录一下自己学习的关于最基础,但是也必须了解到的相关知识!基本知识了解-坐标系、参数获取View操作的相关知识View的滑动(下一篇记录,MotionEvent这里有点多啊)事件分发(单独记录可能性很大)坐标系要了解Android的事件分发,坐标系是必须学习的,否则无法理解其中的位置参数。这里的坐标系指两个:Android坐标系View坐标系这两个坐标系一起使得我们更好的控制View。具体的可以看下面两张图,具体给我们展现

2020-09-27 11:33:49 76

原创 实现拖拽效果二: 使用RecyclerView + ItemTouchHelper 实现拖拽、删除,滑动删除效果

实现拖拽效果二: 使用RecyclerView + ItemTouchHelper 实现拖拽、删除,滑动删除效果因为demo适配了公司的业务,具体图层不好放出来,难受。但是这毕竟只是记录学习,自己知道实现了就好!之前是使用GridView实现的拖拽效果,但是其实他存在一个问题,当时涉及我本身的业务,所以使用那个很难实现,所以发现了这个。GridView如果要实现横向滚动实现分页功能,并且支持拖拽互换就存在很大的问题,当然不同的trager也是可以实现的,但是很不方便,然后使用ItemTouchHelp

2020-09-21 11:12:57 465

原创 实现拖拽效果一 自定义带拖拽功能的GridView

实现拖拽效果一 自定义带拖拽功能的GridView因为demo适配了公司的业务,具体图层不好放出来,难受。但是这毕竟只是记录学习,自己知道实现了就好!首先、既然是GridView实现拖拽效果,这肯定涉及事件分发,需要了解一下事件分发,这个可以去了解一下。我自己关于事件分发的学习也会发出来。首先要实现拖拽功能的GridView,要关注几点事件分发和消费,手指点击下去,down代表一个新的事件开始了,up和cancel表示事件结束了,千万不要忽略了cancel事件。长按反馈,因为你长按开启拖动,所

2020-09-21 11:09:27 323

转载 Android多线程 线程池

Android多线程 线程池一、为什么创建线程池​ 在我看来,使用线程池,主要还是两个方面的原因。一、复用线程,降低资源消耗,提高程序的执行效率,提高响应速度。因为线程是稀有资源,线程的创建和销毁是需要和底层操作系统交互,尤其是对于高并发,短时间任务来说,消耗在创建和销毁线程、线程的切换调度上时间和资源都是相对而言巨大的,可能比用户本身任务花费的时间还长、资源还多。而线程池通过池化技术重复利用已创建的线程,降低线程创建和销毁造成的损耗,并且,合理地根据场景切换模式,也能有效的降低上下文切换调度造

2020-09-08 10:33:23 223

原创 Andorid 多线程 阻塞队列

多线程编程-阻塞队列(BlockingQueue)本文参考《Android进阶之光》为什么使用阻塞队列?更好的理解线程池不用再关注线程的阻塞、同步、唤醒,阻塞队列帮我们完成,我们只需关注业务逻辑阻塞队列简介​ 阻塞队列常用于生产者消费者的场景,生产者是往队列中添加元素的线程,消费者是从队列中拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。常见的阻塞常见阻塞队列有两个常用的阻塞场景,分别是:当队列没有数据的情况下,消费者端的所有线程都会被自动阻塞

2020-09-07 11:35:26 176 1

原创 Android多线程 线程同步学习

线程同步为什么引入同步机制?多线程因为存在共享资源,为了保证其原子性,保证线程安全,必须引入同步机制。一、必要的概念因为多线程的共享内存,当多线程对共享内存进行操作的时候,就存在两个大问题必须解决:竞态条件、内存可见性1、竞态条件当多线程访问和操作同一对象的时候,如果对资源访问的访问顺序敏感,就称存在竞态条件。例子:比如线程A、B都从内存拿数据count,A对数据+2,B对数据+3,所以按照我们期待的结果最终写入内存的数据应该是5。但是其实不是这样的,因为当初A、B从内存拿数据count的时

2020-09-03 17:49:07 244

原创 Android 线程基础 二 线程创建和中断

线程基础 二一、创建线程继承Thread类,重写run()方法Thread本质上也是实现Runnable接口的一个实例。定义Thread的子类,重写该方法的run方法,该run方法的方法体就代表了线程要完成的任务。因此,run()方法被称作方法体创建Thread子类的实例对象调用线程对象的start()方法启动public class TestThread extends Thread{ public void run(){ super.run();

2020-09-03 17:48:33 173

原创 Android 线程基础 一 进程和线程及线程的状态

线程基础 一​ android沿用了Java的线程模型,一个Android应用在创建的时候会开启一个线程,即主线程(UI线程),其余的耗时活动(访问网络数据,计算,访问数据库)必须在子线程中完成,因为Android 3.0 以后,强制要求,否则会抛出异常,这是为了避免主线程被耗时操作阻塞导致ANR。(主线程被阻塞5s就ANR)进程与线程一、进程​ 进程是操作系统结构的基础,是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的基本单位。​ 进程就是程序的实体,同样,它也是线程的容器。

2020-09-03 17:47:00 132

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除