- 博客(34)
- 资源 (25)
- 收藏
- 关注
原创 自定义View之总结
一、View绘制的流程框架 View的绘制是从上往下一层层迭代下来的。DecorView-->ViewGroup(--->ViewGroup)-->View ,按照这个流程从上往下,依次measure(测量),layout(布局),draw(绘制)。关于DecorView,可以看这篇文章。二、Measure流程顾名思义,就是测量每个控件的大小。
2017-08-28 17:43:11 451
转载 自定义控件之视图篇:FlowLayout自适应容器实现
一、XML布局从布局图中可以看到,FlowLayout中包含了很多TextView.难度不大,布局代码如下:先定义一个style,这是为FlowLayout中的TextView定义的:style name="text_flag_01"> item name="android:layout_width">wrap_contentitem> item name=
2017-08-26 17:19:23 515
转载 自定义控件之测量篇:测量与布局
一、ViewGroup绘制流程注意,View及ViewGroup基本相同,只是在ViewGroup中不仅要绘制自己还是绘制其中的子控件,而View则只需要绘制自己就可以了,所以我们这里就以ViewGroup为例来讲述整个绘制流程。绘制流程分为三步:测量、布局、绘制 分别对应:onMeasure()、onLayout()、onDraw() 其中,他们三个的作用分别如下: onMe
2017-08-26 15:21:16 703
转载 自定义控件之绘图篇:Canvas与图层(二)
一、FLAG的具体意义1、FLAG概述有关save系列函数,在canvas中总共有如下几个:public int save() public int save(int saveFlags) public int saveLayer(RectF bounds, Paint paint, int saveFlags) public int saveLayer(flo
2017-08-24 10:06:55 833
转载 自定义控件之绘图篇:Canvas与图层(一)
一、如何获得一个Canvas对象方法一:自定义view时, 重写onDraw、dispatchDraw方法(1)、定义 我们先来看一下onDraw、dispatchDraw方法的定义@Overrideprotected void onDraw(Canvas canvas) { super.onDraw(canvas);}@Overrideprotected void di
2017-08-24 09:36:38 3946 1
转载 自定义控件之绘图篇:Paint之setXfermode(一)
一、GPU硬件加速1、概述GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。与CPU不同,GPU是专门为处理图形任务而产生的芯片。 在GPU出现之前,CPU一直负责着所有的运算工作,CPU的架构是有利于X86指令集的串行架构,CPU从设计思路上适合尽可能快的完成一个任务。但当面对类似多媒体、图形图像处理类型的任务时,就显得力不从心。因为在多媒体
2017-08-22 18:28:21 455
转载 自定义控件之绘图篇:Paint之setColorFilter
一、setColorFiltersetColorFilter的完整声明为:public ColorFilter setColorFilter(ColorFilter filter) 参数是传入ColorFilter的对象,其实ColorFilter是一个空对象,其中什么也没有:public class ColorFilter { int nat
2017-08-21 16:11:55 608
转载 自定义控件之绘图篇:Paint之ColorMatrix与滤镜效果
一、矩阵概述1、定义称为m*n矩阵2、矩阵乘法矩阵乘法其实并不难,它的意思就是将第一个矩阵A的第一行,与第二个矩阵B的第一列的数字分别相乘,得到的结果相加,最终的值做为结果矩阵的第(1,1)位置的值(即第一行,第一列)。 同样,A矩阵的第一行与B矩阵的第二列的数字分别相乘然后相加,结果做为结果矩阵第(1,2)位置的值(即第一行第二列)。
2017-08-21 14:21:14 466
转载 自定义控件之绘图篇:Paint之函数大汇总
一、基本用法1、概述我们先来看一下paint中基本设置的函数都有哪些: reset() 重置画笔 setColor(int color) 给画笔设置颜色值 setARGB(int a, int r, int g, int b) 同样是设置颜色,但是利用ARGB分开设置 setAlpha(int a) 设置画笔透明度 setStyle(Paint.St
2017-08-18 15:45:16 1248
转载 自定义控件之绘图篇:Path之贝赛尔曲线和手势轨迹、水波纹效果
从这篇开始,我将延续androidGraphics系列文章把图片相关的知识给大家讲完,这一篇先稍微进阶一下,给大家把《Android Graphics(二):路径及文字》略去的quadTo(二阶贝塞尔)函数,给大家补充一下。 本篇最终将以两个例子给大家演示贝塞尔曲线的强大用途: 1、手势轨迹利用贝塞尔曲线,我们能实现平滑的手势轨迹效果 2、水波纹效果
2017-08-17 15:41:46 646
转载 贝塞尔曲线公式推导原理
贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。1962,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由Paul de Casteljau于1959年运用de Casteljau演算法开发,以稳定数值的方法求出贝兹曲线。曲线的核心定义:起始点、终止点(也称锚点)、控制
2017-08-17 11:09:23 10143 2
转载 自定义控件之绘图篇:drawText()详解
一、概述1、四线格与基线小时候,我们在刚开始学习写字母时,用的本子是四线格的,我们必须把字母按照规则写在四线格内。比如:那么问题来了,在canvas在利用drawText绘制文字时,也是有规则的,这个规则就是基线!我们先来看一下什么是基线:可见基线就是四线格中的第三条线!也就是说,只要基线的位置定了,那文字的位置必然是定了的!2、canvas
2017-08-17 09:35:55 927
转载 自定义控件之绘图篇:区域(Region)
一、构造Region1、基本构造函数 public Region() //创建一个空的区域 public Region(Region region) //拷贝一个region的范围 public Region(Rect r) //创建一个矩形的区域 public Region(int left, int top, int right, int botto
2017-08-15 17:50:35 4927
转载 自定义控件之绘图篇:路径及文字
一、创建路径canvas中绘制路径利用:void drawPath (Path path, Paint paint)1、直线路径void moveTo (float x1, float y1):直线的开始点;即将直线路径的绘制点定在(x1,y1)的位置;void lineTo (float x2, float y2):直线的结束点,又是下
2017-08-15 17:04:20 397
转载 自定义控件之绘图篇:概述及基本几何图形绘制
一、Paint与Canvas像我们平时画图一样,需要两个工具,纸和笔。Paint就是相当于笔,而Canvas就是纸,这里叫画布。所以,凡有跟要要画的东西的设置相关的,比如大小,粗细,画笔颜色,透明度,字体的样式等等,都是在Paint里设置;同样,凡是要画出成品的东西,比如圆形,矩形,文字等相关的都是在Canvas里生成。下面先说下Paint的基本设置函数:p
2017-08-15 16:01:26 317
转载 Android动画之layoutAnimation与gridLayoutAnimation
前几篇给大家讲述了如何针对某一个控件应用动画,这篇将给大家讲解如何给容器中的控件应用统一动画。即在容器中控件出现时,不必为每个控件添加进入动画,可以在容器中为其添加统一的进入和退出动画。 从上面的示例动画也可以看出,listview中的数据在进入时就加入了统一动画,下面我们就来看看这些是怎么来实现的吧。 这篇我们将讲述有关普通viewGroup添加进入统一动画的LayoutAnimat
2017-08-15 15:05:15 483
转载 Android补间动画之ScaleAnimation、AlphaAnimation、RotateAnimation、TranslateAnimation、AnimationSet详解
首发:http://blog.csdn.net/harvic880925/article/details/40117115一、概述前两篇,我为大家讲述了利用XML来定义动画及插值器,但在代码中,我们常常是动态生成动画的,所以,这篇将为大家讲述如何用代码生成动态生成动画及插值器。先简单写出各个标签对应的类,方便大家理解:scale —— ScaleAnimatio
2017-08-15 14:35:34 782
转载 Android补间动画之alpha、scale、translate、rotate、set详解
首发:http://blog.csdn.net/harvic880925/article/details/39996643 一、概述Android的animation由四种类型组成:alpha、scale、translate、rotate,对应android官方文档地址:《Animation Resources》1、XML配置文件中alpha
2017-08-15 14:15:11 987
转载 自定义控件之绘图篇:canvas变换与操作
首发:http://blog.csdn.net/harvic880925/article/details/39080931相关文章:《Android自定义控件三部曲文章索引》: http://blog.csdn.net/harvic880925/article/details/50995268一、平移(translate)canvas中有一个函数translate(
2017-08-15 12:22:36 556
原创 Resource之ClipDrawable
一 ClipDrawable ClipDrawable从位图截取一个“图片片段”,使用元素,可以现实使图片徐徐展开,其有三大属性:android:drawable :指定图片资源android:clipOrientation:指定借取方向,有水平截取或垂直截取android:gravity:指定截取时的对齐方式,其值有top|bottom|left|right|cent
2017-08-14 11:54:11 211
原创 Resource之layer-list(LayerDrawable)
一 LayerDrawable LayerDrawable包含一个drawable数组,android系统按照顺序去绘制它们,在XML自定义要使用...元素。其属性有:android:drawable :指定drawable对象;android:id : 为drawable指定唯一标识;android:bottom|top|left|right:指定在目标控件绘制的位
2017-08-14 11:24:30 471 1
原创 Resounces之ShapeDrawable
一 前言 shapeDrawable用来定义基本的几何图形,例如oval(椭圆) line(直线) ring(环形) rectangle(矩形),在xml自定义时使用标签二 shape子元素1 cornerscorners用来绘制几何图形的四个角的弧度,其属性有:android:Radius 设置四个角的半径
2017-08-12 17:00:31 337
原创 Android UI根据屏幕分辨率决定加载布局
Android中动态加载布局,可以提高用户的体验,在实际开发中,我们使用限定符来根据屏幕分辨率或者屏幕的大小决定加载那种布局,具体方法如下:1、在res文件夹下layout文件夹下放的xml布局文件是,android屏幕认为的小屏幕设备;2、在res文件夹下layout-large文件夹放的xml布局文件是,Android屏幕认为的large的设备3、除了以上两种,还有一种
2017-08-11 16:02:36 1700
原创 PreferenceActivity之 Subclasses of PreferenceActivity must override isValidFragment(String)
小石头的博客 http://blog.csdn.net/lu1024188315/article/details/74518599
2017-08-10 15:42:50 562
原创 PreferenceActivity
一 相应组件关系图:1 PreferenceGroup(1)方法public void setOrderingAsAdded(boolean orderingAsAdded)当一个preference被add进来的时候是否排序,如果是true 的话,那么对于那些没有order的将根据里面的preference的order 跟 默认字母进行排序 。在
2017-08-10 15:35:35 797
原创 android之混淆
一 什么是混淆 Java代码编译成二进制class 文件,这个class 文件也可以反编译成源代码 ,除了注释外,原来的code 基本都可以看到。为了防止重要code 被泄露,我们往往需要混淆(Obfuscation code ,也就是把方法,字段,包和类这些java 元素的名称改成无意义的名称,这样代码结构没有变化,还可以运行,但是想弄懂代码的架构却很难。 proguard 就是这样
2017-08-08 17:59:57 334
原创 AS混淆之transformClassesAndResourcesWithProguardForRelease
一 异常描述 最近在使用androidAnnotations注解框架做项目,在打包的时候出现了这个异常如下:Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.> java.io.IOException: Can't write [/Users/
2017-08-08 17:32:51 995
原创 AS和Gradle Plugin不兼容
一 问题背景 因为项目app分包需要,将工程的graddle版本升至了2.2.0 alpha4,而我的Android studio 一向升级为最新版,于是就出现了题目中的报错:Error running app: This version of Android Studio is incompatible with the Gradle Plugin used. Try
2017-08-08 17:13:43 493
原创 图片处理框架之ImageLoader
一 前言 刚开始作android项目时使用就是ImageLoader来加载图片的,在其内部自动实现了图片的下载、缓存等功能,自己只需要配置一下缓存路径就可以,当时感觉这已经很牛掰了,现在己经出现了Glide、Picasso等图片处理框架,这些框架使用起来更加方便可靠,不过在很多的老项目中还有很多在使用ImageLoader,在此总结下,开源库:https://github.com/n
2017-08-08 09:36:04 568
转载 图片处理框架之picasso
一 前言 首发:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0731/1639.html picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。仅仅只需要一行代码就能完全实现图片
2017-08-07 16:58:08 460
转载 图片处理框架之Glide
一 前言英文原文 Introduction to Glide, Image Loader Library for Android, recommended by Google首发地址 http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html 在泰国举行的谷歌开发者论坛上,谷歌
2017-08-07 15:59:00 526
原创 android 之 ActionBar
一 前言Action bar就是替换3.0以前的tittle bar和menu。App Icon:可显示软件icon,也可用其他图标代替。当软件不在最高级页面时,图左侧会显示一个左箭头,用户可以通过这个箭头向上导航。视图切换:如果你的应用要在不同的View中显示数据,这部分允许用户来切换View。一般的作法是用一个drop-down菜单或者是Tab Control
2017-08-03 15:09:38 841
原创 android之菜单(menu)
一 前言 菜单在桌面应用中使用十分广泛,在android中由于屏幕的限制,android 3.0之后,就不要求android手机上必须MENU键,加上ActionBar的出现,菜单在android手机上使用越来越少,那么为什么还要总结这个东西?本人开始做android项目的时候,也感觉这个东西可有可无(基本上都是自定义标题栏),即使在一些项目中出现过,也没有太关注,但学习andro
2017-08-02 14:48:58 847
原创 VIewAnimator及其子类
一 ViewAnimator的继承关系 --FrameLayout --ViewAnimator --ViewSwitcher --imageSwitcher --Text
2017-08-01 16:51:19 348
tomcat插件
2017-11-30
decompiler
2017-10-31
ksoap2-android-assembly
2017-09-21
AndroidAnnotations-3.2
2017-08-08
android深入理解卷2
2017-07-03
Android 6.0 运行时权限管理
2016-07-06
AutoCompleteTextView自定义Item的布局
2016-03-31
自定义标签
2016-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人