自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 View的事件分发机制,从源码角度分析一下

View的事件分发:public boolean dispatchTouchEvent(MotionEvent event) {        // If the event should be handled by accessibility focus first.        if (event.isTargetAccessibilityFocus()) {        

2017-12-16 10:02:27 344

原创 window家族的关系

window:抽象类,表示一个窗口,窗口中可以添加view;PhoneWindow:window的具体实现类;ViewManager:接口,提供添加,更新,删除view的三个方法WindowManager:接口,继承自viewManager,负责管理WindowWindowManagerImpl:windowManager的实现类WindowManagerGlobal:Wind

2017-12-01 15:12:17 331

原创 drawable源码分析

public abstract void draw(@NonNull Canvas canvas);----子类需要继承的方法public void setBounds(int left, int top, int right, int bottom) ----为当前Drawable实例设置一个矩形范围,在draw方法调用时候,Drawable实例将被绘制到这个矩形范围内。publ

2017-12-01 11:07:49 615

原创 drawble和bitmap的区别

Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB8888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。Can

2017-12-01 09:53:31 308

原创 PullToRefreshListView实现下拉刷新

首先我们需要理解PullToRefreshListView是一个竖直的LinearLayout具体的样式大致可以分为三部分,如下图图中的mRefreshableView是一个listview,我们都知道,如果一个listview,那么他本身是可以有一个headview和footview的,也就是这个又可以具体分为下面这样:下面我们来分析具体的场景:1.正常状态下手指

2017-08-21 22:24:38 341

原创 GsyVideoPlayer视频分析(三)------------全屏实现

首先思考以下几个问题:1.点击全屏按钮,视频是怎么填充整个屏幕的?(以及视频放大时的动画效果实现)2.视频填充屏幕后,又是如何实现横屏的?3.视频是如何做到,列表中的视频和放大后的视频,无缝衔接的?依旧通过代码分析://设置全屏按键功能gsyVideoPlayer.getFullscreenButton().setOnClickListener(new View.OnCl

2017-07-04 19:13:04 9613 1

原创 GsyVideoPlayer视频分析(二)------------列表视频播放视频

思考以下几个问题:1.视频窗口的大小和位置是如何匹配ListView的item大小和位置的?2.视频播放画面是如何显示出来的?3.视频播放的声音如何显示出来的?通过代码分析; @Override  public View getView(final int position, View convertView, ViewGroup parent) {    

2017-07-04 16:54:22 3362

原创 GsyVideoPlayer视频分析(一)------------GSYVideoPlayer的初始化

Demo地址:https://github.com/CarGuo/GSYVideoPlayer,读者可以下载该demo后,感受它的效果,再来读这篇文章: demo使用的是别人的demo,主要是进行一些原理分析,主要分析一下几点:1.GSYVideoPlayer的初始化2.视频播放实现3.全屏实现4.滑动时,小窗口出现和消失实现逻辑5.小窗口视频创建6

2017-07-04 16:25:16 13281

原创 android的dpi含义

px:像素dp:基于 density的抽象单位dip:像素密度sp:px = dp *  density;density = dpi / 160;px = dp *dpi /160;各个dpi对应关系文件夹名称分辨率dpidensityldpi 120dpi0.75

2017-06-25 08:42:26 2302 1

原创 FramLayout源码分析

5.4.2         绘制分析FrameLayout继承自ViewGroup,属于view控件,因此也遵从view的绘制逻辑。 根据我们对view的理解,其绘制大体也是按measure—layout—draw的流程处理的。  5.4.2.1                            Measure过程重载onMeasure,功能分3大部分:遍历子v

2017-06-21 11:19:22 329

原创 View和ViewGroup的测量过程

从ViewRootImpl的performTraverals方法开始,三步走1.performMeasure调用view的Measure方法;2.performLayout调用view的Layout方法;3.performDraw调用view的draw方法;View的测量:1.measure(int widthMeasureSpec ,int heightMeasu

2017-06-14 17:08:06 315

原创 View的4种构造函数

/** * Simple constructor to use when creating a view from code. * * @param context The Context the view is running in, through which it can * access the current theme, resources, etc. */p

2017-06-14 15:18:17 545

空空如也

空空如也

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

TA关注的人

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