
AndroidUI
文章平均质量分 83
白云朵朵飞
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Activity加载UI流程
activity加载UI直观的起始位置是activity的setContentView方法,进入该方法看到实现如下: public void setContentView(int layoutResID) { getWindow().setContentView(layoutResID); initWindowDecorActionBar(); } ...原创 2018-07-12 15:37:22 · 2061 阅读 · 0 评论 -
View绘制实战——热门标签
上一篇文章已经对View绘制的流程进行了讲解,并用其解决了ListView的嵌套问题。今天我们再次通过热门标签这种常用的自定义控件来演示View绘制的综合运用。 本篇文章讲了热门标签这一简单自定控件的三种实现。其中,前两种基于onMeasure、onLayout方法,最后一种基于LinearLayout布局。 这样做的目的是在加强对View绘制理解的同时,注意实现过程的多样性,增强对知识的灵活...原创 2018-07-18 17:07:57 · 1364 阅读 · 0 评论 -
闲聊自定义控件之View绘制
了解View的绘制对自定义控件的开发有着重要的意义,上一篇已经对activity加载UI的流程进行了讲解,从中可以看出DecorView是我们的最外层View,是一个FrameLayout的子类,View的绘制也是从DecorView开始的。 DecorView调用performTraversals()方法开始View的绘制,这个方法内容比较多,比较核心的是调用如下方法: - perfor...原创 2018-07-13 16:35:22 · 1178 阅读 · 0 评论 -
事件分发实战——滑动冲突
滑动冲突非常的常见,可能刚开始接触的时候确实有点让人摸不着头脑,但分析总结之后就会发现还是有一定的规律可循。 滑动冲突解决的关键点在于对事件分发机制的理解,对于事件的分发机制,上一篇文章(闲聊自定义控件之事件分发)已经对其进行了介绍,如果对该知识点缺乏了解的话建议先读一下上篇文章。 滑动冲突的分类 滑动冲突一般分为两类,内外部滑动方向一致、内外部滑动方向不一致。至于由它们嵌套或者平行组合...原创 2018-08-03 17:55:52 · 1471 阅读 · 0 评论 -
闲聊自定义控件之事件分发
Android的事件分发机制相较前面的知识点有点复杂,之所以有这种感觉是因为这部分的源码阅读需要一定的耐心,要属于剔除“非核心”代码的影响。特别是在高版本的API中,为了更好的体验,增加了大量代码,但这些代码对整个事件的流向是没有影响的。另外,事件分发机制在View和ViewGroup中有不同的表现,父布局和子View之间有一定的关联性,这种关联性根据方法返回值不同又多种多样。这些都对事件分发机制...原创 2018-07-27 10:24:32 · 1455 阅读 · 0 评论 -
闲聊自定义控件之View滑动
Android的滚动(滑动)有很多种实现方式,如动态改变布局参数,属性动画,Scroller等。这些方式大多是通过View的坐标改变来实现的。 布局参数相关实现方式 这一部分主要包括layout()方法以及设置LayoutParams两种方式。 layout()方法实际就是直接控制View坐标的四个点来实现的,上一篇文章(闲聊自定义控件之滑动冲突)中就是使用的这种方式。具体如下: case Mot...原创 2018-12-14 20:18:27 · 1119 阅读 · 0 评论 -
Android动画详解(上)
说起动画大家想必都比较熟悉,因为开发中要经常面对各种各样的动画效果。如果遇到一个比较“挑剔”的设计师,在自定义控件和动画方面没有两把像样的刷子估计就要受尽折磨了。自定义控件除了一些View相关知识比较重要外,动画也占相当重要的部分。Android自发布到现在经历了多次重大版本迭代,UI效果已经变的相当强大,当年从诺基亚N73过渡到Android手机,感觉换了一片天地,其强大的功能和酷炫的界面令人折...原创 2019-01-30 16:36:58 · 1077 阅读 · 0 评论 -
Canvas综合实战——沙漏
Canvas其实在前面的几篇博客中都有过使用,但这些使用一般集中在绘制和画布变化方面,画布的快照和裁剪应用很少。下面通过一个沙漏实例演示下这两部分的使用 效果图: 说是沙漏确实有点勉强.没有美工支持,只好从老项目里扒出来两张不同颜色填充的颜色来应付。重在实现过程,希望有强迫症的同学能够理解一下哈。 主要实现过程分为两部分 1. 自定义一个Drawable,实现两张图片的拼接。 2. ...原创 2018-06-27 16:06:48 · 2332 阅读 · 1 评论 -
闲聊自定义控件之基础——Canvas
前面介绍过了有关绘制的基础知识,包括Color、坐标、Path、Paint等,今天主要梳理下Canvas的相关知识点。Canvas一般称为画布,但其实它只是一套画图的API,使用这些API可以对内存进行操作,进而画出想要的图形。 打开android.graphics包下的Canvas类,可以看到其内部提供的方法还是比较多的,为了便于理解,对方法进行分类总结。 绘制操作 绘制的主要方法如下...原创 2018-06-27 14:55:20 · 1536 阅读 · 0 评论 -
仿链家splash
因为最近购房使用链家APP较多,无意中发现链家的splash挺不错,刚好这几天赋闲在家(公司出游,自己要办贷款手续没法去),就模仿着写了一下,分享给大家: 因为色值、图形、素材以及动画效果等并没有刻意的去模仿,外加鄙人艺术细胞不足,所以最终效果有点差强人意。虽然有点丑,但基本的效果都有,不影响我们探讨其实现过程: 一、动画过程整体分析 仔细观察这个页面,发现整个过程包含三个部分,...原创 2018-04-20 17:46:18 · 2472 阅读 · 2 评论 -
闲聊自定义控件之分类
自定义控件基本上是每个Android开发人员绕不过的坎,很大一部分开发人员对其并没有清楚的认识,所以一遇到自定义控件就有点手足无措,说不上“谈虎色变”吧,至少会少些许底气。闲来无事,咱们聊一下Android自定义控件那些事。 要想写自定义控件,首先必须对其有个清楚的认识,并非所有的自定义控件都跟想象中的那样难。 自定义控件可以根据其功能、样式、特效的复杂程度和相关性在实现过程这个维度可以将其拆...原创 2018-04-26 17:14:41 · 1678 阅读 · 0 评论 -
闲聊自定义控件之单元拆分
自定义控件的单元拆分是一种在实现流程维度上的拆分,跟技术的复杂与否没有关系。这种拆分可以将实现流程复杂的控件,拆解成多个单元,分单元实现最后粘合,使流程和逻辑更加清晰。 复杂自定义控件往往拆解成几个部分,每一部分可以是View,也可以是动画或者逻辑处理过程等。 如果拆解后的部分还很复杂,可以继续拆解,拆解的粒度需要自己根据实际需要去判断。如果拆解后的单元过于复杂,那么实现起来的复杂度也会比较高...原创 2018-04-26 17:20:25 · 1462 阅读 · 0 评论 -
闲聊自定义控件之基础——坐标
坐标是自定义控件的基础,例如在处理事件点击、滚动、动画等很多情况时都需要坐标的相关知识。Android坐标与数学中的相差不大,主要使用两种方式进行描述:绝对坐标和相对坐标。 Android的坐标系是以屏幕的左上角为原点,向下为X的正方向,向右为Y 的正方向(如下图所示)。相当于数学坐标系,以屏幕左上角为原点,顺时针旋转90度。 Android坐标系使用相对坐标的情况较多,绝对坐标较少,且相...原创 2018-05-04 17:59:37 · 1642 阅读 · 0 评论 -
闲聊自定义控件之基础——Color
提到Color大家都很熟悉,不就是ARGB嘛。其实,除了这些基本的东西之外,有些知识点还是需要稍微注意一下的。下面带大家一起复习下与Color相关的知识。 ARGB分别是透明度(alpha)、红(red)、绿(green)、蓝(blue)。在ARGB_8888模式下它们的取值范围是0-255,也就是ox00到oxff,因此每一个颜色通道占8位即1个字节,也就是说一个像素点需要4个字节来表示。 ...原创 2018-04-28 18:16:23 · 1679 阅读 · 0 评论 -
闲聊自定义控件之基础——Path
Path在自定义控件里的使用频率也相当的高,使用Path不仅能绘制矩形、圆形等常规图形,还能绘制比较复杂的组合路径。 基本方法 点的相关操作 moveTo:移动到哪一点 lineTo:连接到哪一点 rMoveTo:移动到哪一点(参考点为当前点) rlineTo:连接到哪一点(参考点为当前点) setLastPoint:设置终点位置 close:连接开始的点和末尾的点,使路径闭合 ...原创 2018-05-14 15:15:49 · 1759 阅读 · 0 评论 -
Path 综合实战——滑雪
Path是自定义控件中非常重要的一部分,上一篇闲聊自定义控件之基础——Path中介绍了Path相关的基础知识,今天通过一个滑雪的demo,演示下Path相关API的使用。 该demo用到的Path的知识点主要有贝塞尔曲线、Path逻辑运算、PathMeasure等,这些都是常用的,而且比较重要的知识点。 闲话少说,先看效果图: 1.首先是初始化的操作 private void in...原创 2018-05-23 20:24:56 · 1710 阅读 · 2 评论 -
闲聊自定义控件之基础——Paint
下图是paint中所有有关set的方法,基本涵盖了paint的所有用法。本篇文章介绍的内容基本上就是图片里的方法,为了便于介绍对这些方法进行了简单的分类整理。 基础应用 图形绘制相关 mPaint.reset();//重置 mPaint.setColor(Color.RED);//设置画笔颜色 mPaint.setAlpha(255...原创 2018-06-13 16:21:15 · 1535 阅读 · 0 评论 -
Paint实战——圆角图片
圆角图形在android的开发中非常常见,也有多种实现方式,今天主要演示两种使用paint相关的API来完成图形圆角裁剪的过程。主要用的知识点为BitmapShader和Xfermode,这两个类前面已经有所介绍(闲聊自定义控件之基础——Paint),大家可以对照理解一下。之所以使用这两种方式,一方面是为了补足上一篇讲述paint的博客中缺乏对高级应用的实战,另一方面也是非常重要的一方面是因为这两...原创 2018-06-15 14:35:14 · 2933 阅读 · 0 评论 -
Android动画详解(下)
本篇文章主要介绍属性动画,需要了解补间动画和帧动画相关知识的,建议阅读Android动画详解(上)。属性动画非常强大,运用也非常灵活,为了便于理解,本文首先从类的角度介绍了属性动画的继承关系,然后针对一些重点类介绍了其内的主要方法,最后通过demo的方式对属性的动画的常见用法进行了演示。 类继承关系 属性动画存放在android.animation包下,主要的类继承关系如下: 主要方法 Anim...原创 2019-01-30 18:58:39 · 1757 阅读 · 0 评论