自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (4)
  • 收藏
  • 关注

原创 自定义View——模拟水银柱

水银柱

2016-10-20 11:39:37 462 1

原创 自定义View

自定义View的分类继承View重写onDraw方法 这种方法主要用于实现一些不规则的效果,即这种效果不方便通过布局的组合方式来达到,旺旺需要静态或者动态的显示一些不规则的图形。很显然这种需要通过绘制的方式来实现,即重写onDraw方法。采用这种方式需要自己支持wrap_content,并且padding也需要自己处理。继承ViewGroup派生特殊的Layout 这种方法主要用于实现自定义

2016-04-28 16:48:13 250

原创 View的工作流程(layout过程)

layout过程Layout的作用是ViewGroup用来确定子元素的位置,当ViewGroup位置被确定后,它在onLayout中会遍历所有的子元素并调用其layout方法,在layout方法中onLayout方法又会被调用。layout方法确定本身的位置,而onLayout方法则会确定所有子元素的位置。 public void layout(int l, int t, int r, int b)

2016-04-28 16:02:27 309

原创 View的工作流程

View的工作流程主要是指measure、layout、draw三大流程,即测量、布局、绘制,其中measure确定View的测量宽高,layout确定View的最终宽高和四个顶点的位置,而draw则将View绘制到屏幕上。measure过程该过程需要分情况来看,如果是一个原始的View,那么通过measure方法就可以完成其测量过程,如果是一个ViewGroup,除了完成自己的测量过程,还会遍历去

2016-04-27 20:43:42 269

原创 View的工作原理

ViewRootViewRoot对应ViewRootImpl类,他是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的。在ActivityThread中,当Activity对像被创建完毕后,会将DecorView添加到Window中,同时会创建ViewRootImpl对像,并将ViewRootImpl对像和DecorView建立关联,过程参见

2016-04-27 19:03:42 270

原创 滑动冲突的解决方式

1.外部拦截 点击事件斗仙经过父容器的拦截处理,如果父容器需要此事件就拦截,否则就不拦截。外部拦截需要重写父容器的onInterceptTouchEvent方法,在内部做相应的拦截即可。 2.内部拦截 内部拦截是指父容器不拦截任何事件,所有的时间都传递给子元素,如果子元素需要此事件就直接消耗掉,否则交由父容器处理,此方式需要配合requestDisallowInterceptTouchEven

2016-04-20 19:26:12 437

原创 View的滑动冲突

1.滑动冲突的产生: 在界面中要内外两层同事可以滑动,这个时候就会产生滑动冲突。 常见的滑动冲突场景可以简单分为三种:场景1—–外部滑动方向和内部滑动方向不一致。场景2—–外部滑动方向和内部滑动方向一致。场景3—–上面两种情况的嵌套。外部滑动方向和内部滑动方向不一致:主要是讲ViewPager和Fragment配合使用所组成的页面滑动效果,主流应用几乎都会使用这个效果。在这种效果中,可以

2016-04-19 21:08:06 283

原创 View的事件分发机制

点击事件的传递规则MotionEvent即点击事件,所谓点击事件的事件分发,其实就是对MotionEvent时间的分发过程,即当一个MotionEvent产生以后,系统需要把这个时间传递给一个具体的View,而这个传递的过程就是分发过程。点击事件分发过程由三个很重要的方法来共同完成:dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent。publi

2016-04-19 20:59:32 216

原创 View的滑动

通过三种方式可以实现View的滑动: 第一是通过View本身提供的scrollTo/scrollBy方法来实现滑动; 第二是通过动画给View施加平移效果来实现滑动; 第三是通过改变View的LayoutParams使得View重新布局从而实现滑动 1.使用scrollTo/scrollBy 先贴源码 /** * Set the scrolled position of your

2016-04-14 21:40:51 202

原创 View的事件体系

View的基础知识1.什么是View View是Android中所有控件的基类,不管Button和TextView还是RelativeLayout和ListView他们共同的基类都是View。还有ViewGroup,包含多个控件,其实ViewGroup也继承了View,这就意味着View本身就可以是单个控件也可以是由多个控件组成的一组控件。 2.View的位置参数 View的位置主要由它的四个

2016-04-13 21:29:04 216

原创 IPC小记Binder连接池

使用AIDL通信流程: 首先创建一个Service和一个AIDL接口,接着创建一个类继承AIDL接口中的Stub类并实现Stub中的抽象方法,在Service的onBind方法中返回这个类的对像,然后客户端就可以绑定服务端Service,建立连接后就可以访问远程服务端的方法了。 随着AIDL数量的增加我们不能无限制的增加Service,所以我们需要将所有的AIDL放在同一个Service去管理。

2016-04-13 21:13:46 275

原创 IPC小记 Socket

Socket也成套接字,分为流式套接字和用户数据报套接字两种,分别对应于网络传输控制层中的TCP和UDP协议。 TCP: TCP协议是面向连接的协议,提供稳定的双向通信功能,TCP连接的建立需要经过“三次握手”才能完成,为了提供稳定的数据传输功能,其本身提供了超时重传机制,因此具有很高的稳定性。 UDP: UDP是无法连接的,提供不稳定的单向通信功能,当然UDP也可以实现双向通信功能。在性能

2016-04-13 18:52:57 201

原创 Android中的IPC方式

首先仍然是关于Binder的Binder中有俩很重要的方法linkToDeath和unlinkToDeath.通过linkToDeath我们可以额给Binder设置一个死亡代理,当Binder挂掉时,我们就会接到通知,此时我们可以重新发起链接请求从而恢复链接。 首先:声明一个DeathRecipient对像mDeathRecipient = new DeathRecipient() {

2016-04-12 21:20:02 257

原创 IPC基础小记 关于Binder

Binder是Android中的一个类,它实现了IBinder接口。 从IPC角度来说Binder是Android中的一种跨进程通信方式 Binder是桥梁,Binder是媒介。。。给笔者印象Binder就是个顺丰。。。 我们可以通过AIDL文件生成一个Binder类 新建一个文件后缀改成.aidl敲如下代码package com.example.testandroid;parcelable

2016-04-07 21:44:56 244

原创 IPC基础小记

继续了解IPC还需要了解Serializable接口Parcelable接口和BinderSerializable接口一个序列化接口,它是一个空接口,用于对像的实例化,那么新的问题来了 到底啥叫序列化还有反序列化又是个啥? Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。 想要对一个对象实现序列化,只需要这个类实现Serializa

2016-04-05 22:06:25 223

原创 IPC小记

1.IPC是什么鬼?IPC是Inter-Process Communication的缩写,含义为进程间通信或者跨进程通信,说白了是进程间数据交换的过程。 一个进程指一个程序或者应用,一个进程里可以含有多个线程。2.多进程开启的场景一般多进程情况有两种: NO.1 程序某些模块由于特殊原因需要运行在单独的进程中,或者为了加大一个应用可使用内存,Android对单个应用使用的最大内存做了限制,网上

2016-04-05 21:21:45 222

转载 微信公众平台开发者模式和编辑模式有什么用

转载自 http://www.enettec.com/xinwenzixun/xingyexinwen/167.html 微信公众账号的高级功能包括“编辑模式”和“开发模式”,两种模式皆可使你所运营的公众帐号个性化,例如具有“自定义菜单”“自动回复”等功能。下面就为大家详细介绍一下微信公众平台开发者模式和编辑模式到底都有什么用: 编辑模式:         编辑模式指所有的公众号运

2015-05-27 14:27:28 3046

转载 Android Support v4、v7、v13的区别和应用场景

文章引用 http://my.oschina.net/chengliqun/blog/148451N久未做android了,以前做的时候,2.2才刚出来,现在android都更新到了4.3了,而从前一段时间android各个sdk版本市场占有率 来看,1.6、2.1还是占有一定的市场,故在有些时候,我们还是得要考虑兼容这些版本。   google提供了Android Support

2015-05-19 09:23:20 332

滑动冲突解决方式Demo_内部拦截

滑动冲突内部拦截的Demo,此Demo采用内部拦截方式在子元素中复写onInterceptTouchEvent方法调用parent.requestDisallowInterceptTouchEvent方法处理滑动冲突问题

2016-04-21

内部解决滑动冲突Demo

内部解决滑动冲突Demo

2016-04-20

滑动冲突解决方式Demo

滑动冲突内部拦截的Demo

2016-04-20

ios8 Axure组件库

Axure最新 iOS8 UIKit iPhont6 iPhont6 Plus 最新完整部件库,该部件库由原型库网站金乌制作,广大网友可自由转载请注明出处并保留注释信息。 本套部件库包含最新的 iOS8 iPhone6 UI Kit ,机身部件库几乎囊括了目前主流的苹果手机和平板电脑产品:iPhone 4S/iPhone 5C/iPhon 5S/iPod Touch/iPhone 6/iPhone 6+/iPad Mini/iPad Mini3/iPad Air/iPad Air2/iPad 2 在部件库中点击部件右上角的小问号,可以查看详细说明,为大家解释了在真实的移动设备中预览原型,应该设计多大的尺寸,这是困扰很多小伙伴儿的问题。现在,你可以找到清晰明确的答案!

2015-04-07

空空如也

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

TA关注的人

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