![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
进阶
逆风Lee
这个作者很懒,什么都没留下…
展开
-
Android进阶二:序列化总结(基础篇)
一、Java对象与Java对象序列化的区别 Java对象存在的前提必须在JVM运行期间存在,如果想在JVM非运行的情况下或者在其他机器JVM上获取指定Java对象,在现有Java对象的机制下都不可能完成。 与Java对象不同的是,如果对Java对象执行序列化操作,因为原理是把Java对象信息保存到存储媒介,所以可以在以上Java对象不可能存在的情况下依然可以使用Java对象。二、序列化的目的(1转载 2017-09-18 22:06:56 · 610 阅读 · 0 评论 -
Android进阶十四:Databinding之@BindingAdapter和Component
@BindingAdapter作用于方法它定义了xml的属性赋值的java实现方法必须为公共静(public static)方法,可以有一到多个参数。问题在使用databinding的时候,有时候发现:属性在类中没有对应的setter,如ImageView的android:src,ImageView中没有setSrc()方法,属性在类中有setter,但是接收的参数原创 2018-01-13 22:06:22 · 10543 阅读 · 1 评论 -
Android进阶十五:Notification进阶
基本使用见Android 通知栏Notification总结一:基本用法 还是引用那张图: 一、使用RemoteViews自定义布局因为notification所在的进程和应用程序所在的进程不是同一个进程,所以如果notification要使用自定义布局,需要借助RemoteViews来实现,1.基本用法布局:LinearLayout xmlns:android="h转载 2018-01-20 20:54:10 · 186 阅读 · 0 评论 -
Android进阶十九 Databinding使用总结
String组合<string name="common_percent">%1$s%2$s</string> <data > <variable name="value" type="int"/></data>android:原创 2018-02-16 16:40:50 · 1797 阅读 · 0 评论 -
Android进阶十七:invalidate() 、postInvalidate()、requestLayout() 总结。
invalidate()请求重绘View树,即draw()过程。把例子中他是整个刷新着UI,并且从头到尾并不会触发onMeasure()方法(控制大小用)。如果是View就重绘View,如果是ViewGroup就全部重绘。一般引起invalidate()操作的函数如下:直接调用invalidate()方法,请求重新draw(),但只会绘制调用者本身。setSelection()方法...转载 2018-02-06 21:13:59 · 497 阅读 · 0 评论 -
Android进阶二十 HandlerThread总结
概述在日常开发中,我们经常会通过new Thread(){}.start();的方式来开辟一个新的线程。但是如果我们想要多次执行任务的时候,通过这种方式我就会创建多个线程,这样会使我们的程序运行起来越来越慢。通常情况下我会采用HandlerThread的方式来开辟一个线程,那么HandlerThread是什么呢?今天我们来介绍一下HandlerThread。正文HandlerThr...转载 2018-02-20 22:52:54 · 328 阅读 · 0 评论 -
Android进阶二十一 Scroller使用总结
Scroller是一个用于实现弹性滑动的帮助类,它主要是通过时间的流逝,根据设置到Scroller中的插值器,计算出当前滑动到的距离,然后我们根据scrollTo/scrollBy去让view产生弹性滑动的动画效果,与属性动画类似,使用Scroller要明白一点,那就是: Scroller只能对View中的内容进行滑动,如一个Button使用Scroller以后,Button的背景不会滑动...转载 2018-02-21 22:42:51 · 162 阅读 · 0 评论 -
Android进阶二十二 View事件的传递过程
对于View的事件分发主要分析的对象是MotionEvent,即点击事件。所谓点击事件的分发,其实就是对MotionEvent事件的分发过程,即当一个MotionEvent产生后,系统需要把这个事件传递给一个具体的View,而这个传递过程就是分发过程。概述从应用层角度分析,事件的传递过程遵循如下顺序:Activity——>Window——>View,即事件总是先传递给Act...转载 2018-03-03 16:11:13 · 249 阅读 · 0 评论 -
Android进阶十二:解析XML的三种方式
http://blog.csdn.net/d_shadow/article/details/55253586http://blog.csdn.net/isee361820238/article/details/52371342Pull方式: xml:calibration> group>BNCgroup> material id="BG"> t转载 2018-01-08 13:30:55 · 177 阅读 · 0 评论 -
Android进阶十一:Gson解析复杂的json数据
http://blog.csdn.net/tkwxty/article/details/34474501/Android studio插件GsonFormat 的使用: http://blog.csdn.net/dreamlivemeng/article/details/51262538转载 2018-01-08 13:17:50 · 227 阅读 · 0 评论 -
Android进阶十:android studio 代码混淆
一、Android Studio 代码混淆基本配置在工程目录下,找到 proguard-rules.pro 文件,它就是你要进行编写混淆配置的文件,在这个文件中编写混淆规则当然,在这之前,还需要在你 module 的 build.gradle 文件中引用该混淆文件: 上面中的 proguard-android.txt 文件,这是系统默认的混淆文件,具体在../sdk/tools/pr原创 2018-01-07 09:34:57 · 241 阅读 · 0 评论 -
Android基础总结九:VectorDrawable
一、概述Android 5.0系统中引入了VectorDrawable来支持矢量图(SVG),同时还引入了AnimatedVectorDrawable来支持矢量图动画。由于兼容性问题,所以到目前使用矢量图的应用还是比较少。关于SVG的知识可以参考:SVG 教程二、VectorDrawable的优缺点优点:• Vector图像可以自动进行适配,不需要通过分辨率来设置不同的图片 • Vector图像可转载 2017-09-27 10:42:55 · 1231 阅读 · 0 评论 -
Android进阶五:分析内存泄漏(Memory Leak)之一
前言最近在项目中偶尔会发现内存泄漏现象。一开始还是一脸懵逼的查来查去:这怎么就泄漏了?这样竟然没泄漏?一直没有个清晰地思路。这几天闲下来,打算认真整理学习一下。我在这里从一个“如何主动造成内存泄漏”的角度来学习,然后熟悉一下不同方法检测的结果如何,这样以后再遇到相关问题时就能够很快的解决了。java gc首先要有一个大前提,也就是java gc。在大部分虚拟机(包括Android的ART)中,Jav转载 2017-10-23 17:39:45 · 2962 阅读 · 0 评论 -
Android进阶四:Databinding的使用(基础篇)
Data Binding是2015年Google I/O大会上提出的,从Beta版至今,Data Binding已经是一个可用度较高,也能带来实际生产力提升的技术。Data Binding顾名思义就是数据绑定,是Google对MVVM在Android上的一种实现,可以直接绑定数据到xml上,并实现自动刷新,现在最新的版本还支持双向绑定。Data Binding的优点:1、 去掉Activities原创 2017-10-15 22:37:00 · 3893 阅读 · 1 评论 -
Android进阶六:Databinding的双向绑定
在Android Studio 2.1 Preview 3之后,官方开始支持双向绑定了。 什么是双向绑定呢? 下面是Data Binding的基本使用:<layout ...> <data> <variable type="com.example.myapp.User" name="user"/> </data> <RelativeLayout ...> <EditT原创 2017-12-08 15:06:54 · 4121 阅读 · 0 评论 -
Android进阶七:RecyclerView拖动滑动之ItemTouchHelper
ItemTouchHelperItemTouchHelper是一个强大的工具,它处理好了关于在RecyclerView上添加拖动排序与滑动删除的所有事情。它是RecyclerView.ItemDecoration的子类,也就是说它可以轻易的添加到几乎所有的LayoutManager和Adapter中。它还可以和现有的item动画一起工作,提供受类型限制的拖放动画等等,类介绍主要涉及到ItemTouc转载 2017-12-10 21:54:13 · 9362 阅读 · 2 评论 -
Android进阶八:RecyclerView自动滚动
smoothScrollToPosition()在使用RecyclerView的时候,有一些场景需要RecyclerView能自动滑动到指定的item,这种情况可以调用RecyclerView的以下方法来实现:scrollToPosition(int position)smoothScrollToPosition(int position)这两个方法传入需要滑动到的item的position就可以实原创 2017-12-11 22:18:14 · 14701 阅读 · 0 评论 -
Android进阶九:TextView绘制原理之top,bottom,ascent,descent,baseline
top,bottom,ascent,descent,baseline先来看一张图: 文字在绘制的时候,会根据当前的字体,字体大小等信息,确认top,bottom,ascent,descent,baseline的值,这些值会最终影响到字体在TextView中的显示位置, 通过getPaint().getFontMetricsInt()可以获取到这些值baseline:基准点,字符在TextVie原创 2017-12-23 12:44:23 · 5659 阅读 · 1 评论 -
Android进阶十三:Databinding之@BindingConversion标签
@BindingConversion作用于方法被该注解标记的方法,被视为dataBinding的转换方法。方法必须为公共静态(public static)方法,且有且只能有1个参数作用在使用databinding的时候,对属性值进行转换,以匹配对应的属性。 举个例子,比如android:background属性,看源码:public void setBackground(Drawable原创 2018-01-13 10:35:24 · 2237 阅读 · 0 评论 -
Android进阶三:自定义View
自定义view步骤: 一.自定义View的属性二.在View的构造方法中获取自定义属性[三.重写onMesure]四.重写onDraw 我把四用[]标出了,所以说四不一定是必须的,当然了大部分情况下还是需要重写的。一、自定义View的属性在res/values/底下建立一个attrs.xml,在里面定义属性和声明我们的整体样式resou转载 2017-09-21 22:28:44 · 243 阅读 · 0 评论