自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 View的事件分发(三)源码分析(onTouchEvent )

目录前言View的事件分发(二)源码分析中,我们提到 OnLongClickListener 和 OnClickListener 的回调都是在 onTouchEvent 中执行的。那么下面我们就来分析具体的执行流程:源码分析以下所有源码都是基于版本 27。为方便阅读,有所删减。setOnClickListener 源码//View 类public void setOnClic...

2019-07-01 16:57:47 264

原创 View的事件分发(二)源码分析(dispatchTouchEvent)

目录以下源码基于版本27,并为了方便阅读有所删减。Activity —> ViewGroup 流程分析从View的事件分发(一)分发流程文章得知,从用户点击屏幕到屏幕中的控件响应操作的大致流程是 Activity-> ViewGroup-> View。那么 Activity 是怎么把事件传递给我们在 xml 中写的根视图呢?就是说 Activity-> ViewGr...

2019-07-01 16:54:17 215

原创 View的事件分发(一)分发流程

目录作用事件分发流程对于我们开发者来讲,有什么作用?根据我们自己的需求来自定义滑动触摸响应的规则。解决滑动冲突相关知识MotionEvent引用官方介绍: Object used to report movement (mouse, pen, finger, trackball) events. Motion events may hold either absolute o...

2019-07-01 16:50:39 764

原创 View的绘制-draw流程详解

目录作用根据 measure 测量出的宽高,layout 布局的位置,渲染整个 View 树,将界面呈现出来。具体分析以下源码基于版本27DecorView 的draw 流程在《View的绘制-measure流程详解》中说过,View 的绘制流程是从 ViewRootViewImpl 中的 performMeasure()、performLayout、performDraw 开始...

2019-04-30 14:12:41 489

原创 View的绘制-layout流程详解

文章目录目录作用具体分析layout 的流程LinearLayout 的 onLayout 逻辑getWidth、getMeasureWidth分析总结参考文献目录作用根据 measure 测量出来的宽高,确定所有 View 的位置。具体分析View 本身的位置是通过它的四个点来控制的:以下涉及到源码的部分都是版本27的,为方便理解观看,代码有所删减。layout 的流程先...

2019-04-30 14:11:54 433

原创 View的绘制-measure流程详解

文章目录目录作用基础知识LayoutParamsMeasureSpec执行流程ViewGroup 中 measure 的执行流程View 中 measure 的执行流程DecorView 的 measureSpec 计算逻辑总结参考文档:目录作用用于测量View的宽高,在执行 layout 的时候,根据测量的宽高去确定自身和子 View 的位置。基础知识在 measure 过程中,设...

2019-04-30 14:10:43 263

原创 DialogFragment详解

文章目录介绍:和 Dialog 的区别:基本使用方式自定义宽高样式自定义宽高设置样式和页面之间传递数据源码分析style、theme 的生效时机。setCancelable 不起作用-原因分析参考介绍:Android 中实现弹窗的一种方式。分为 v4 包下的和android.app 包下的,我们使用 v4 包下的, android.app 包下的 DialogFragment 在 Andr...

2019-03-27 00:29:39 1656

原创 Android四大组件之ContentProvider

文章目录ContentProvider 介绍ContentProvider 使用使用 ContentProvider 获取系统数据:自定义 ContentProvider :参考文献:ContentProvider 介绍用于跨进程共享数据。它提供了一套完整的方案,使得一个应用程序可以访问另一个程序的数据,进行增删改查。是Android进行跨进程共享数据的标准方式。比如,我们可以开发自己的程序...

2019-03-11 09:52:55 91

原创 Android四大组件之BroadcastReceiver

文章目录BroadcastReceiver:BroadcastReceiver的使用:基本用法注册广播发送广播广播特点Android8.0静态注册广播接收不到隐式发送的广播参考文献:BroadcastReceiver:Android四大组件之一,通过intent发送接收消息。系统本身也会发送广播,比如网络发生变化,屏幕的熄灭和亮起,接收短信,开机等这些行为都会发送广播。我们可以通过特定的、系...

2019-03-09 00:37:17 105

原创 Android四大组件之Service,以及IntentService

文章目录Service基本介绍Service生命周期Service的基本用法IntentService:参考文章:Service基本介绍Android四大组件之一,没有界面的后台服务。我们如果想要在后台执行一些任务,会用到Service。比如:后台下载更新;后台播放音乐等等。需要在mainfest中注册。Service生命周期Service有两种启动方式,通过两种不同的启动方式,生命周...

2019-03-05 00:45:42 149

原创 Android四大组件之Activity

Android四大组件之Activityactivity是啥?简单来说就是用来和用户交互的界面,由各个控件组成 ,将内容界面化展现于用户面前,接收用户的触摸事件和用户进行交互,可以说是使用最频繁的组件了。activity生命周期生命周期: onCreate -> onStart -> onResume ->onPau

2019-02-26 00:33:47 286

转载 TextView中文排版问题

TextView中文排版问题最近在公司的项目中碰到了中文排版问题,就到网上找了一些现成的解决方法,具体代码如下 public String autoSplitText(TextView tv, String rawText) { if (TextUtils.isEmpty(rawText)) { return ""; } ...

2019-01-23 15:03:02 597

原创 View.Inflate()和LayoutInflate填充布局详解

# View.Inflate()和LayoutInflate填充布局详解 ### View.Inflate() ##View.Inflate(Context context,int resource, ViewGroup root)查看源码:    public static View inflate(Context context, @LayoutRes int resource, ViewGr...

2018-07-05 17:22:27 1556

转载 Android中View的setClickable,setEnable,setFocusable,setFocusableInTouchMode区别

setClickable  设置为true时,表明控件可以点击,如果为false,就不能点击;“点击”适用于鼠标、键盘按键、遥控器等;  注意,setOnClickListener方法会默认把控件的setClickable设置为true。    setEnabled  使能控件,如果设置为false,该控件永远不会活动,不管设置为什么属性,都无效;  设置为true,表明激活该控件,控件处于活动状...

2018-05-22 14:47:06 1462

原创 Android 自定义圆环倒计时控件

先来一张最终效果图:主要思路: 在画渐变色圆环的时候,设置一个属性动画,根据属性动画的执行时长,来作为倒计时的时长.监听属性动画的进度,来达到 倒计时的目的.二话不说,直接贴代码.具体实现思路都在注释上.自定义属性:<declare-styleable name="CountDownProgressBar"> <attr name="coun...

2018-05-02 11:20:05 6850 16

原创 Android 自定义圆环比例图

最近公司要做一个效果,按照比例显示资金数具体思路:根据一组数据计算出每个数据所占比例,再根据比例画出不同角度的圆弧具体步骤:重写构造方法,获取自定义属性,初始化画笔Paint重写onMeasure方法,测量控件的宽高重写onDraw方法,画出圆弧和中间的文字 重写构造方法,获取自定义属性,初始化画笔Paint    1.自定义属性     <declare-styleable name="R...

2018-04-24 17:29:34 1835 3

空空如也

空空如也

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

TA关注的人

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