![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
View
文章平均质量分 95
JohanMan
这个作者很懒,什么都没留下…
展开
-
Android View - 实现流式布局
流式布局,就是一个容器(ViewGroup),往里面添加元素(子View),元素会一直跟在前一个元素的左边,如果超过容器的边界,就把元素放在下一行的第一个位置。Like This:我们自己来实现一下这么一种布局,在实现之前,你需要理解关于自定义ViewGroup相关的知识,可以参考 Android 手把手教您自定ViewGroup;如果没问题,接着往下看。网上已经很多都是静态的数据,就是说在xml直原创 2017-08-08 14:38:22 · 496 阅读 · 0 评论 -
Android View - 位置参数
View的位置参数非常重要,Android系统只有知道View的位置参数,才能确定View所在的位置和大小。View位置参数相关的属性: [left,right,top,bottom,elevation] [translationX,translationY,translationZ] [x,y,z] … 下面对着3组参数进行讲解。left,right,top,bottom通过这张图,应该原创 2017-07-21 11:19:03 · 519 阅读 · 0 评论 -
Android View - 坐标系
自定义View时,有时需要我们重写View的onTouch,那么肯定要获取手指触碰的坐标,所以我们得好好了解View的坐标系。一般我们都会通过MotionEvent获取坐标,有getX(),getY(),getRawX(),getRawY()。 getX()和getY()获取的坐标是以触碰点所在的View的左上角为坐标原点(View坐标系)的坐标。 getRawX()和getRawY()获取的坐原创 2017-07-21 11:57:19 · 304 阅读 · 0 评论 -
Android View - 控件架构
控件分两种:View和ViewGroup。View成为子控件,ViewGroup称为父控件,其实ViewGroup也是继承View实现的。View和ViewGroup有机组合在一起,叫控件树。Like This :每棵控件树都是以ViewParent对象开始,ViewParent是控制控件树的核心,所有View的交互事件都由它调度和分配。上图还有个说明,调用findViewById方法,以深度遍历找原创 2017-07-21 15:02:20 · 519 阅读 · 0 评论 -
Android View - 测量Measure
Android在绘制View之前,必须对View进行测量,测量之后,Android才知道要绘制多大的View。View的测量过程,用到MeasureSpec,我们要理解了这个类,才能更好理解View的测量过程。MeasureSpec应用别人的MeasureSpec源码:public class MeasureSpec { // 进位大小为2的30次方(int的大小为32位,所以进原创 2017-07-21 16:48:02 · 354 阅读 · 0 评论 -
Android View - 布局Layout
Layout起布局作用,确定View的位置。当ViewGroup确定位置后,会遍历子View并调用其layout方法确定子View的位置。View的onLayout方法View的onLayout方法是一个空实现,因为子View不包含其他View,不需要被调用。ViewGroup的onLayout方法ViewGroup会先调用layout方法:public final void layout(int原创 2017-07-21 17:50:37 · 381 阅读 · 0 评论 -
Android View - 事件分发,拦截,处理机制
当我们触碰手机屏幕,便会产生一个触碰事件。由于View体系是以一种树状结构存在的(参考 在我的博文Android View - 控件架构),那么哪个View或者ViewGroup会响应这个事件呢?Android系统提供了一套完善的事件分发,拦截,处理机制,帮助开发者完成准确的事件分发和处理。在《Android群英传》中有这么一个例子,可以帮助我们理解事件分发,拦截,处理机制。假设有一家公司的员工分原创 2017-07-22 14:44:52 · 374 阅读 · 0 评论 -
Android View - 滑动
View的滑动主要有3种: (1)调用scrollTo/scrollBy方法: 滑动的是View内容,操作比较简单。 (2)动画: 滑动的View位置,其实改变的是View的translationX或者translationY。(参考我的博文 Android View - 位置参数) (3)改变布局参数: 通过设置LayoutParams,使View改变位置,只要加上延时,不断得改变位置参数,原创 2017-07-22 17:52:52 · 302 阅读 · 0 评论 -
Android View - RemoteViews
设计Android的工程师起名字还是挺规范的,而且一眼就知道是什么意思。RemoteViews,顾名思义,远程的View。Android为了能让进程A显示进程B的View,设计了这么一种View(其实不是真正的View)。其实我们开发过程中,发通知到状态栏显示也是利用了RemoteViews,我们来了解一下RemoteViews吧。我们先看看RemoteViews怎么配合Notification使用原创 2017-07-24 13:47:14 · 3110 阅读 · 0 评论 -
Android View - 上拉刷新下拉加载ListView
虽然网上有很多上拉刷新库,效果也很好,只是有时候突然来的Bug不是很好处理,而且有时候还达不到效果,所以今天用ListView实现上拉刷新,下拉加载的效果。直接上码:本着易扩展的理念,先写一个父类,实现上拉刷新,下拉加载的效果:package com.johan.library.viewtoolkit.refreshlistview;import android.animation.ValueAni原创 2017-07-28 17:11:43 · 1400 阅读 · 0 评论 -
Android 自定义可手势移动、放缩ImageView
又很长的一段时间没写博客,趁着空闲之余,做一下一个常用的自定义View的记录。手势移动、放缩ImageView是一个很常用的控件,之前都是用别人写好的,发现对Matrix类不是很熟悉,估计以后可能会经常用到这个类,所以想深入了解一下Matrix原理和怎么使用!Matrix网上太多资料了,比如 Android Matrix矩阵,大家自行查资料,只有理解了Matrix变换矩阵,才能看懂下面的代码...原创 2019-06-22 16:53:28 · 613 阅读 · 0 评论