自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

android开发笔记

android开发笔记

  • 博客(10)
  • 资源 (14)
  • 收藏
  • 关注

转载 你可能不知道的Support:0步自动定向刷新:SortedList

由于IM会话列表是从数据库里读的,他还告诉我会有数据集重复的现象,且会话列表肯定是按时间排序的,所以这对我们的数据组织提出了两点要求:有序、去重。我的想法是:* 采用DiffUtil自动计算新老数据集差异,然后自动完成定向刷新。* 至于数据集的去重和有序,我打算用TreeSet去帮助我们做。利用Set本身元素不重复的特性,加之Tree的有序性,来解决数据组织的两个需求。可是leader不知道从哪搜出来一个SortedList,告诉我这是Android SDK提供的。也可以完成排序and去重。

2020-06-20 13:12:36 221

转载 RecyclerView的好伴侣:详解DiffUtil

一 概述DiffUtil是support-v7:24.2.0中的新工具类,它用来比较两个数据集,寻找出旧数据集-》新数据集的最小变化量。说到数据集,相信大家知道它是和谁相关的了,就是我的最爱,RecyclerView。就我使用的这几天来看,它最大的用处就是在RecyclerView刷新时,不再无脑mAdapter.notifyDataSetChanged()。以前无脑mAdapter.notifyDataSetChanged()有两个缺点:不会触发RecyclerView的动画(删除、新增、位移

2020-06-20 13:00:47 697

转载 RecyclerView notifyDataSetChanged 导致图片闪烁的原因

目前,在项目中一些主要页面(如图1 首页,采用ViewPager+TabLayout ,已实现数据懒加载)都会缓存第一页数据(网络)存DB,下次进来时会先请求DB数据,然后再请求网络数据,这样用户体验比较好。之前我们主要页面都是使用RadioPullToRefreshListView(封装的PullToRefreshListView,后面简称ListView)方式实现(刷新方式使用的是notifyDataSetChanged),这样不管DB中的数据和网路请求数据是否一样,都会刷新两次,体验上没...

2020-06-20 12:45:39 4428 1

转载 RecyclerView性能优化及高级使用

1、RecyclerView缓存1.1 RecyclerView主要有三级缓存:(1)Attached scrap & Changed scrapArrayList<ViewHolder> mAttachedScrap 主要用在插入或是删除itemView时,先把屏幕内的ViewHolder保存至AttachedScrap中,作用在LayoutManager中,它仅仅把需要从ViewGroup中移除的子view设置它的父view为null,从而实现了从Recycler

2020-06-20 12:27:08 2607

转载 基于滑动场景解析RecyclerView的回收复用机制原理

最近在研究 RecyclerView 的回收复用机制,顺便记录一下。我们知道,RecyclerView 在 layout 子 View 时,都通过回收复用机制来管理。网上关于回收复用机制的分析讲解的文章也有一大堆了,分析得也都很详细,什么四级缓存啊,先去 mChangedScrap 取再去哪里取啊之类的;但其实,我想说的是,RecyclerView 的回收复用机制确实很完善,覆盖到各种场景中,但并不是每种场景的回收复用时都会将机制的所有流程走一遍的。举个例子说,在 setLayoutManager、setA

2020-06-20 11:53:30 412

转载 一篇文章让你轻松弄懂NestedScrollingParent & NestedScrollingChild

虽然很早之前使用CoordinatorLayout时就认识过nestedScrollingChild和nestedScrollingParent, 也看多很多博客,但每次看着就不知所云了,所以这篇文章,我们就以问题为线索,带着问题找答案。1. 谁实现 NestedScrollingChild,谁实现NestedScrollingParent ?在实际项目中,我们往往会遇到这样一种需求,当ViewA还显示的时候,往上滑动到viewA不可见时,才开始滑动viewB, 又或者向下滑动到viewB不能滑动时

2020-06-20 10:42:23 600 1

转载 可水平滚动RecyclerView,自定义滚动条滚动距离

前几天,产品出了个原型图,直接截图拼多多,可滑动宫格,实现随意水平滑动。于是研究下拼多多的样式,感觉是一个水平滑动的RecyclerView,但是底部的滚动条,瞬间挠头了~~~于是乎研究滚动条,尝试修改RecyclerView自带的滚动条,可把自己折腾坏了,游标的滑动时可以自定义了,但是底部scrollbarTrackHorizontal 的长短修改不了。另寻他法。。。研究了下源码,有这几个方法可以使用。。。//当前RcyclerView显示区域的高度。水平列表屏幕从左侧到右侧显示范围i...

2020-06-20 10:38:46 2204

原创 RecyclerView——SnapHelper详解

简介RecyclerView在24.2.0版本中新增了SnapHelper这个辅助类,用于辅助RecyclerView在滚动结束时将Item对齐到某个位置。特别是列表横向滑动时,很多时候不会让列表滑到任意位置,而是会有一定的规则限制,这时候就可以通过SnapHelper来定义对齐规则了。SnapHelper是一个抽象类,官方提供了一个LinearSnapHelper的子类,可以让RecyclerView滚动停止时相应的Item停留中间位置。25.1.0版本中官方又提供了一个PagerSnapHelp

2020-06-20 10:32:44 1377

原创 Android动画原理

首先说Animation(android.view.animation.Animation)对象。无论是用纯java代码构建Animation对象,还是通过xml文件定义Animation,其实最终的结果都是Animation a = new AlphaAnimation();Animation b = new ScaleAnimation();Animation c = new RotateAnimation();Animation d = new TranslateAnimation()

2020-06-20 10:20:40 533

转载 GestureDetector使用详解

Android sdk给我们提供了GestureDetector(Gesture:手势Detector:识别)类,通过这个类我们可以识别很多的手势,主要是通过他的onTouchEvent(event)方法完成了不同手势的识别。虽然他能识别手势,但是不同的手势要怎么处理,应该是提供给程序员实现的。GestureDetector这个类对外提供了两个接口和一个外部类接口:OnGestureListener,OnDoubleTapListener内部类:SimpleOnGestureListener这个

2020-06-20 09:53:26 6497

安卓 OpenGL ES 2.0 完全入门(一):基本概念和 hello world.docx

安卓 OpenGL ES 2.0 完全入门(一):基本概念和 hello world

2019-08-25

01 Protocol Buffer技术详解(语言规范).doc

01 Protocol Buffer技术详解(语言规范).doc

2016-05-08

java设计模式

java设计模式

2016-05-08

OkHttp使用教程

OkHttp使用教程 OkHttp是一个相对成熟的解决方案,据说Android4.4的源码中可以看到HttpURLConnection已经替换成OkHttp实现了。所以我们更有理由相信OkHttp的强大。

2015-12-18

IDirectDraw7的使用

LPDIRECTDRAW7 lpDD; //DirectDraw对象 LPDIRECTDRAWSURFACE7 lpDDSPrimary ; //DirectDraw主表面 LPDIRECTDRAWSURFACE7 lpDDSBack ; //后台缓冲表面 DDSURFACEDESC2 ddsd ; //表面描述 DDSCAPS2 ddscaps ; 而且声明完表面描述后应立即用 ZeroMemory( &ddsd, sizeof( ddsd ) ); ZeroMemory( &ddscaps, sizeof( ddscaps ) ); 这两个语句使ddsd和ddscaps中的变量都为零,如果不这样做下面的CreateSurface会不成功。

2014-10-14

DirectDraw7编程基础

首先定义一个指向DirectDraw对象的指针,创建DirectDraw对象,查询以获取最新的DirectDraw接口,设置协作等级,设置显示模式。

2014-10-14

MTK短信编码.docx

目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信;而PDU模式不仅支持中文短信,也能发送英文短信。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符。一般的PDU编码由A B C D E F G H I J K L M十三项组成。

2012-12-06

c语言设计(最全).ppt

C程序设计 上海工程技术大学 主讲:李旭芳 教材 C程序设计 (第二版) 谭浩强编著 清华大学出版社

2012-12-06

常用编码详解.docx

详细介绍各种常见编码的转换算法。通用字符集(UCS)、Unicode编码、UTF-8编码、UTF-7编码、GB2312编码、URL 解码

2012-12-06

刷机原理04 Android系统Recovery模式的工作原理.wps

Android系统Recovery模式的工作原理 在使用update.zip包升级时怎样从主系统(main system)重启进入Recovery模式,进入Recovery模式后怎样判断做何种操作,以及怎样获得主系统发送给Recovery服务的命令,这一系列问题的解决是通过整个软件平台的不同部分之间的密切通信配合来完成的。为此,我们必须要了解Recovery模式的工作原理,这样才能知道我们的update.zip包是怎样一步步进入Recovery中升级并最后到达主系统的。 一、Recovery模式中的三个部分 ................

2012-10-24

刷机原理03 Android系统的三种启动模式.wps

Android系统的三种启动模式 一、 系统更新update.zip包的两种方式 1. Android在升级系统时获得update.zip包的方式有两种。一种是离线升级,即手动拷贝升级包到SD卡(或NAND)中,通过settings--&gt;About phone--&gt;System Update--&gt;选择从SD卡升级。另一种是在线升级,即OTA Install(over the air)。用户通过在线下载升级包到本地,然后更新。这种方式下的update.zip包一般被下载到系统的/CACHE分区下。 2. 无论将升级包放在什么位置,在使用update.zip更新时都会重启并进入Recovery模式,然后启动recovery服务(/sbin/recovery)来安装我们的update.zip包。 ............

2012-10-24

刷机原理02 Android升级包update.zip的生成过程分析.wps

Android升级包update.zip的生成过程分析1) 对于update.zip包的制作有两种方式,即手动制作和命令生成。 第一种手动制作:即按照update.zip的目录结构手动创建我们需要的目录。然后将对应的文件拷贝到相应的目录下,比如我们向系统中新加一个应用程序。可以将新增的应用拷贝到我们新建的update/system/app/下(system目录是事先拷贝编译源码后生成的system目录),打包并签名后,拷贝到SD卡就可以使用了。 第二种制作方式:命令制作。Android源码系统中为我们提供了制作update.zip刷机包的命令,即make otapackage。该命令在编译源码完成后并在源码根目录下执行。 具体操作方式:在源码根目录下执行 ①$ . build/envsetup.sh。 ②$ lunch 然后选择你需要的配置(如17)。 ③$ make otapackage。 ....................

2012-10-24

刷机原理01 update.zip包目录结构

update.zip包目录结构 boot.img是更新boot分区所需要的文件。这个boot.img主要包括kernel+ramdisk。 system/目录的内容在升级后会放在系统的system分区。在Android源码编译后out/target/product/generic/system/。

2012-10-24

空空如也

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

TA关注的人

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