- Android-View 绘制原理(01)-JAVA层分析
代码多哥
一路向下-aosp源码分析android
View的绘制是Android的基础知识,本人将从浅入深介绍AndroidView的绘制流程及原理。本文基于android12,阐述个人的理解,源码量非常大,主要目的是记录和分享自己的学习心得,如有错误,欢迎同行指正,共同进步。1.从onDraw说起onDaw(Canvascanvas)这个是最简单的绘制方法,是学习自定义控件的基本方法。canvas参数提供了绘制的画布,我们可以重写这个方法,来实
- Android-View的事件分发及拦截-父控件和子控件都处理触摸事件的方式
MonkeyLei
比如接着上篇Android-View的事件分发及拦截机制简单流程先体验再研究(场景?疑问?具体?待续...),小白现在要实现就是子View和父ViewGroup都响应点击事件。1.单纯的都只是响应down事件这个就很简单了-直接子View的**publicboolean**onTouchEvent(MotionEventevent)里面直接返回false就行了。也就是子控件响应了一次down后,接
- Android-View绘制原理(02)-VSync原理之SurfaceFlinger篇
代码多哥
一路向下-aosp源码分析android
前面一篇文章从整体介绍View绘制的流程,其中一点就是绘制的起始点就是界面收到了Vsync之后,开始新一帧的绘制,所以可以说,是vsync触发了绘制。收到vsync信号后的处理我们已经清楚了,现在我们分析以下sync是怎么产生的,以及怎么消费的。1.从16ms说起我们16ms这个时间应该是印象深刻了,我们经常听到在大部分屏幕的刷新频率是60Hz的情况下,那每一帧的时间就约16ms,如果应用程序在收
- Android-View进阶-事件分发机制原理
上课小蜗牛
Android移动端Android事件分发Android进阶
简简单单讲清楚android事件分发。原文链接什么叫事件分发机制?事件分发是:当发生了一个事件时,在屏幕上找到一个合适的控件来处理这个事件的过程。因为一个界面上控件如此之多,发生一个事件后总要寻找一个合适来处理事件吧。这个过程就叫做事件分发的机制。常见事件原文链接那么屏幕上都会发生什么事件呢?来看下经常要处理的4种事件(这些事件在android中会被封装成MotionEvent对象):事件简介AC
- 2021我对Android-view的3条认识,全网疯传
web大美女
程序员android移动开发面试
开头让我们一起来看看,字节跳动的第三面,面试官都问了什么?(第一二面的题目及答案已整理,需要的可以在文末领取)从七月中旬开始,我前前后后差不多一共投递了八十份简历,到目前为止,我参加面试的面试有十二家(收到的面试通知)字节跳动的面试我准备了一个多星期吧,因为比较重视。从字节跳动面试官这些问题,可以看出,第三面他们考察的一个很重要的方向就是项目架构和性能优化。“懒洋洋”甚至跟我吐槽:“我靠,现在大厂
- Android-View 绘制流程
zskingking
前言距离上次发文大约已经过了十个月左右,期间换了份工作,有着不错的领导跟同事,还多了一位可爱至极的赵老师陪着我。最近在不断的有人给我的文章点赞评论,看到后甚是欣慰,但同时也陷入了深深的沉思,找到新工作后,业余时间竟在吃喝玩乐想法设法消磨时间,碌碌无为的过了大半年,这种生活状态经常让我产生不安,甚至焦虑,所以一咬牙一跺脚我又回来了~~~闲话不多扯切入正题,作为一名Android开发者肯定明白View
- Android-View点击事件短时间重复点击的过滤
xiedroid
一、实现方式1、Rxjava2、自定义类继承OnClickListener接口二、实现过程1、Rxjava这种方式需要项目以来rxjava库,推荐在项目中存在该库时使用**如果不想依赖,可以参考第二种方式。用到的方法:Observable的throttleFirst方法实现短时间内的事件过滤。importandroid.view.Viewimportio.reactivex.Observablei
- Android-View的绘制
爱吃香蕉的猴子0000
anroid-杂乱android
View的绘制hi,大家好,我是爱吃香蕉的猴子,今天写写,绘制view;先绘制一个画笔效果:代码:publicclassDrawLextendsView{privateintmov_x;//声明起点坐标privateintmov_y;privatePaintpaint;//声明画笔privateCanvascanvas;//画布privateBitmapbitmap;//位图privateintb
- Android-View进阶-事件分发机制原理
weixin_34029949
简简单单讲清楚android事件分发。原文链接什么叫事件分发机制?事件分发是:当发生了一个事件时,在屏幕上找到一个合适的控件来处理这个事件的过程。因为一个界面上控件如此之多,发生一个事件后总要寻找一个合适来处理事件吧。这个过程就叫做事件分发的机制。常见事件原文链接那么屏幕上都会发生什么事件呢?来看下经常要处理的4种事件(这些事件在android中会被封装成MotionEvent对象):事件简介AC
- Android-View学习(二)
本然233
Android
系列学习:https://www.gcssloop.com/customview/CustomViewIndex/一、View的生命周期https://www.jianshu.com/p/08e6dab7886e构造View()-->onFinishInflate()-->onAttachedToWindow()-->onMeasure()-->onSizeChanged()-->onLayout
- Android-View绘制流程浅析
learnNG
android
引这段时间学习了下View的绘制流程,本着好记性不如烂笔头的原则,尝试将这些内容记录下来,用于巩固和总结。这次学习的源码是基于AndroidSDK25来学习的,相比于之前版本的源码有了些许改变。对于部分代码的功能和作用没有专门在正文中写出,而是以注释的形式写在了代码中。基本流程流程可大致分为两个部分,首先是在Activity的onCreate阶段设置contentView,另一个阶段则是在Acti
- 【Android-View】Android View控相关低频属性
dandelionela
AndroidView
目录1.TextView2.EditText3.ImageView4.Button4.1去掉Button默认的点击阴影5.CheckBox5.1调整原生样式CheckBox的大小5.2调整原生样式CheckBox的颜色6.RecyclerView7.Toolbar8.CardView8.1CardView去除阴影1.TextView2.EditText3.ImageView4.Button4.1去
- 【Android-View】基于原生View的简单功能定制
dandelionela
ViewAndroid
1.TextView1.1设置TextView可滚动且更新文字后自动滚动至最后一行【方案】如下步骤①在TextView布局文件中给TextView加入如下属性android:scrollbars="vertical"android:fadeScrollbars="false"②在Activity中的onCreate()方法中,使用setMovementMethod(MovementMethodmo
- Android高可拓展框架Conductor源码解析(1)
豆沙包lo
Android
先上源码地址,点我!介绍Conductor是一个基于视图的“麻雀虽小,五脏俱全”的Android框架,它给标准Android-View进行简单的封装,去掉不必要的特性。简单聚合不使用Fragment简单强力的生命周期导航与回退的处理优雅的视图跳转状态持久化onActivityResult,onRequestPermissionsResult等方法回调MVP/MVVM/VIPER/MVC拓展Cond
- android-view篇-ConstraintLayout 约束布局
Liu Weidong
android
文章目录概述相对定位边距居中和偏移Circularpositioning尺寸约束链GroupGuideline参考概述ConstraintLayout主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。AndroidStudio2.3开始,官方模板默认使用ConstraintLayout。添加依赖,如下:implementation'com.android.support.constr
- android-view button 防止短时间内重复点击
梦与千寻
UI动态加载反射重构动态技术
短时间用户多次发出某个点击事件1,比如点击某个按钮跳转(详情页面)activity,手机性能不加。在未跳转之前用户多次触发了点击事件就会产生两个activity。可能对于四大组件的activity,会有人说。使用activity的启动模式在manifest中配置activitylaunchMode标签(singleTask,singleTop,singleInstance)然并不卵用。2,点击某个
- Android-View事件体系之View的基础知识
欧阳帆54
Android-View事件体系之View的基础知识View虽然不是四大组建,但是其作用却不属于四大组建,甚至凌驾于ContentProvider和BroadcastReceiver之上。所以从这节开始讲解一下View的相关知识。View的基础知识什么是ViewView是Android中所有控件的基类,所以View是一种界面层的控件的一种抽象,它代表了一个控件。除了View,还有一个ViewGro
- Android-View的测量
Flutter笔记
AndroidView的测量在绘制View之前,要对整个View进行测量,这个过程就在onMeasure()方法中进行的。测量的模式EXACTLY精确值模式,当控件的width和height设置为具体值或者match_parent时就是这个模式UNSPECIFIED这个属性不指定测量的模式,View想多大就多大AT_MOST最大值模式,当控件的width和height设置为wrap_context
- Android-View进阶-事件分发机制原理
TryEnough
简简单单讲清楚android事件分发。什么叫事件分发机制?事件分发是:当发生了一个事件时,在屏幕上找到一个合适的控件来处理这个事件的过程。因为一个界面上控件如此之多,发生一个事件后总要寻找一个合适来处理事件吧。这个过程就叫做事件分发的机制。常见事件那么屏幕上都会发生什么事件呢?来看下经常要处理的4种事件(这些事件在android中会被封装成MotionEvent对象):事件简介ACTION_DOW
- Android-View自定义属性-简化写法
lioilwin
一.声明属性类型(res/values/attrs.xml)1.自定义属性正式写法,必须有此步骤,属性类型多样(int,float,boolean,enum....)2.自定义属性简化写法,可忽略此步骤,但属性类型只有字符串二.使用属性(res/layout/layoutxxx.xml)三.在java中获取xml属性publicclassMyViewextendsView{publicMyView
- Android-View绘制流程浅析
叮咚象JC
引这段时间学习了下View的绘制流程,本着好记性不如烂笔头的原则,尝试将这些内容记录下来,用于巩固和总结。这次学习的源码是基于AndroidSDK25来学习的,相比于之前版本的源码有了些许改变。对于部分代码的功能和作用没有专门在正文中写出,而是以注释的形式写在了代码中。基本流程流程可大致分为两个部分,首先是在Activity的onCreate阶段设置contentView,另一个阶段则是在Acti
- Android - View 的工作原理
_CAFE_BABE_
Android-View的工作原理View的工作流程主要指的是measure、layout、draw这三大流程,即测量、布局和绘制,其中measure确定View的测量宽/高,layout确定View的最终宽/高和四个顶点的位置,而draw则将View绘制到屏幕。在介绍View的三大流程之前,需要先了解ViewRoot、DecorView和MeasureSpec的基本概念,才能更好的理解View的
- Android - View 的事件分发机制
_CAFE_BABE_
Android-View的事件分发机制View的事件由MotionEvent类表示,MotionEvent定义了大量的常量来表示用户的手指(鼠标、手写笔、轨迹球)在屏幕上的各种状态。View的事件分发机制指的就是View(ViewGroup、Button等)在复杂的层级关系里对MotionEvent事件的分配和处理规则。事件序列:当一次手指触摸屏幕行为开始,往往后续会连续触发一连串的事件,如:DO
- Android-View绘制流程
BlingBest
View树的绘制流程当Activity接收到焦点的时候,它会被请求绘制布局,该请求由Androidframework处理,绘制是从根节点开始的,对布局树进行measure和draw。整个View树的绘制流程在ViewRoot.java类的performTraversals()函数展开,该函数所做的工作可简单概括为是否需要重新计算视图大小(measure),是否需要重新安置视图的位置(layout)
- Android-View的绘制流程解析
九号锅炉
View的绘制流程概述Window的创建:Activity启动时最终会调用ActivityThread.performLaunchActivity来完成启动,这个方法会通过类加载器创建activity的实例对象,并通过Activity.attach()方法创建Window类的实例化对象PhoneWindow.这样window就创建好了。2.DecorView的创建:Activity.onCreat
- android-View之搜索功能的实现
伊泽瑞额
现在很多的app中都有搜索的功能。也就是说搜索栏下面有一个列表,列表中放的内容我们可以在搜索框中输入你想要搜索的内容,这时候,下面的列表就会出现你想要的内容。如图:image.pngxmladapter这个类实现了Filterable接口,然后重写了getFilter()方法,在adapter中定义了一个内部类MyFilter继承Filter类,并重写相关方法,实现数据的过滤。publicclas
- Android-View的绘制及自定义View
Mr.八命
视图View主要分为两类:类别解释特点单一视图即一个View,如TextView不包含子View视图组即多个View组成的ViewGroup,如LinearLayout包含子ViewDecorView是一个应用窗口的根容器,它本质上是一个FrameLayout。DecorView有唯一一个子View,它是一个垂直LinearLayout,包含两个子元素,一个是TitleView(ActionBar
- Android-View的绘制及自定义View
Mr.八命
视图View主要分为两类:类别解释特点单一视图即一个View,如TextView不包含子View视图组即多个View组成的ViewGroup,如LinearLayout包含子ViewDecorView是一个应用窗口的根容器,它本质上是一个FrameLayout。DecorView有唯一一个子View,它是一个垂直LinearLayout,包含两个子元素,一个是TitleView(ActionBar
- Android-View的滑动
爱小丽
滑动效果是如何产生的?滑动一个View从本质上来说就是移动一个View,改变其当前的坐标。所以,想要滑动一个View,就必须监听该View的触摸事件,并且根据事件的坐标,不断的改变View的坐标从而实现View的滑动。Android中的坐标体系Android中的坐标体系分为两种:Android坐标系视图坐标系Android坐标系Android坐标系从图中我们可以看的出来在Android坐标系中以屏
- Android-View的手势分发
Fisher0113
手势事件类型ACTION_DOWNACTION_MOVEACTION_UPACTION_CANCELACTION_OUTSIDEACTION_POINTER_DOWNACTION_POINTER_UPActivity的视图框架ActivitPhoneWindowDecorViewTitleViewActionBarContentViewView滚动相关APIscrollToscrollBycomp
- springmvc 下 freemarker页面枚举的遍历输出
杨白白
enumfreemarker
spring mvc freemarker 中遍历枚举
1枚举类型有一个本地方法叫values(),这个方法可以直接返回枚举数组。所以可以利用这个遍历。
enum
public enum BooleanEnum {
TRUE(Boolean.TRUE, "是"), FALSE(Boolean.FALSE, "否");
- 实习简要总结
byalias
工作
来白虹不知不觉中已经一个多月了,因为项目还在需求分析及项目架构阶段,自己在这段
时间都是在学习相关技术知识,现在对这段时间的工作及学习情况做一个总结:
(1)工作技能方面
大体分为两个阶段,Java Web 基础阶段和Java EE阶段
1)Java Web阶段
在这个阶段,自己主要着重学习了 JSP, Servlet, JDBC, MySQL,这些知识的核心点都过
了一遍,也
- Quartz——DateIntervalTrigger触发器
eksliang
quartz
转载请出自出处:http://eksliang.iteye.com/blog/2208559 一.概述
simpleTrigger 内部实现机制是通过计算间隔时间来计算下次的执行时间,这就导致他有不适合调度的定时任务。例如我们想每天的 1:00AM 执行任务,如果使用 SimpleTrigger,间隔时间就是一天。注意这里就会有一个问题,即当有 misfired 的任务并且恢复执行时,该执行时间
- Unix快捷键
18289753290
unixUnix;快捷键;
复制,删除,粘贴:
dd:删除光标所在的行 &nbs
- 获取Android设备屏幕的相关参数
酷的飞上天空
android
包含屏幕的分辨率 以及 屏幕宽度的最大dp 高度最大dp
TextView text = (TextView)findViewById(R.id.text);
DisplayMetrics dm = new DisplayMetrics();
text.append("getResources().ge
- 要做物联网?先保护好你的数据
蓝儿唯美
数据
根据Beecham Research的说法,那些在行业中希望利用物联网的关键领域需要提供更好的安全性。
在Beecham的物联网安全威胁图谱上,展示了那些可能产生内外部攻击并且需要通过快速发展的物联网行业加以解决的关键领域。
Beecham Research的技术主管Jon Howes说:“之所以我们目前还没有看到与物联网相关的严重安全事件,是因为目前还没有在大型客户和企业应用中进行部署,也就
- Java取模(求余)运算
随便小屋
java
整数之间的取模求余运算很好求,但几乎没有遇到过对负数进行取模求余,直接看下面代码:
/**
*
* @author Logic
*
*/
public class Test {
public static void main(String[] args) {
// TODO A
- SQL注入介绍
aijuans
sql注入
二、SQL注入范例
这里我们根据用户登录页面
<form action="" > 用户名:<input type="text" name="username"><br/> 密 码:<input type="password" name="passwor
- 优雅代码风格
aoyouzi
代码
总结了几点关于优雅代码风格的描述:
代码简单:不隐藏设计者的意图,抽象干净利落,控制语句直截了当。
接口清晰:类型接口表现力直白,字面表达含义,API 相互呼应以增强可测试性。
依赖项少:依赖关系越少越好,依赖少证明内聚程度高,低耦合利于自动测试,便于重构。
没有重复:重复代码意味着某些概念或想法没有在代码中良好的体现,及时重构消除重复。
战术分层:代码分层清晰,隔离明确,
- 布尔数组
百合不是茶
java布尔数组
androi中提到了布尔数组;
布尔数组默认的是false, 并且只会打印false或者是true
布尔数组的例子; 根据字符数组创建布尔数组
char[] c = {'p','u','b','l','i','c'};
//根据字符数组的长度创建布尔数组的个数
boolean[] b = new bool
- web.xml之welcome-file-list、error-page
bijian1013
javaweb.xmlservleterror-page
welcome-file-list
1.定义:
<welcome-file-list>
<welcome-file>login.jsp</welcome>
</welcome-file-list>
2.作用:用来指定WEB应用首页名称。
error-page1.定义:
<error-page&g
- richfaces 4 fileUpload组件删除上传的文件
sunjing
clearRichfaces 4fileupload
页面代码
<h:form id="fileForm"> <rich:
- 技术文章备忘
bit1129
技术文章
Zookeeper
http://wenku.baidu.com/view/bab171ffaef8941ea76e05b8.html
http://wenku.baidu.com/link?url=8thAIwFTnPh2KL2b0p1V7XSgmF9ZEFgw4V_MkIpA9j8BX2rDQMPgK5l3wcs9oBTxeekOnm5P3BK8c6K2DWynq9nfUCkRlTt9uV
- org.hibernate.hql.ast.QuerySyntaxException: unexpected token: on near line 1解决方案
白糖_
Hibernate
文章摘自:http://blog.csdn.net/yangwawa19870921/article/details/7553181
在编写HQL时,可能会出现这种代码:
select a.name,b.age from TableA a left join TableB b on a.id=b.id
如果这是HQL,那么这段代码就是错误的,因为HQL不支持
- sqlserver按照字段内容进行排序
bozch
按照内容排序
在做项目的时候,遇到了这样的一个需求:
从数据库中取出的数据集,首先要将某个数据或者多个数据按照地段内容放到前面显示,例如:从学生表中取出姓李的放到数据集的前面;
select * fro
- 编程珠玑-第一章-位图排序
bylijinnan
java编程珠玑
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Random;
public class BitMapSearch {
- Java关于==和equals
chenbowen00
java
关于==和equals概念其实很简单,一个是比较内存地址是否相同,一个比较的是值内容是否相同。虽然理解上不难,但是有时存在一些理解误区,如下情况:
1、
String a = "aaa";
a=="aaa";
==> true
2、
new String("aaa")==new String("aaa
- [IT与资本]软件行业需对外界投资热情保持警惕
comsci
it
我还是那个看法,软件行业需要增强内生动力,尽量依靠自有资金和营业收入来进行经营,避免在资本市场上经受各种不同类型的风险,为企业自主研发核心技术和产品提供稳定,温和的外部环境...
如果我们在自己尚未掌握核心技术之前,企图依靠上市来筹集资金,然后使劲往某个领域砸钱,然
- oracle 数据块结构
daizj
oracle块数据块块结构行目录
oracle 数据块是数据库存储的最小单位,一般为操作系统块的N倍。其结构为:
块头--〉空行--〉数据,其实际为纵行结构。
块的标准大小由初始化参数DB_BLOCK_SIZE指定。具有标准大小的块称为标准块(Standard Block)。块的大小和标准块的大小不同的块叫非标准块(Nonstandard Block)。同一数据库中,Oracle9i及以上版本支持同一数据库中同时使用标
- github上一些觉得对自己工作有用的项目收集
dengkane
github
github上一些觉得对自己工作有用的项目收集
技能类
markdown语法中文说明
回到顶部
全文检索
elasticsearch
bigdesk elasticsearch管理插件
回到顶部
nosql
mapdb 支持亿级别map, list, 支持事务. 可考虑做为缓存使用
C
- 初二上学期难记单词二
dcj3sjt126com
englishword
dangerous 危险的
panda 熊猫
lion 狮子
elephant 象
monkey 猴子
tiger 老虎
deer 鹿
snake 蛇
rabbit 兔子
duck 鸭
horse 马
forest 森林
fall 跌倒;落下
climb 爬;攀登
finish 完成;结束
cinema 电影院;电影
seafood 海鲜;海产食品
bank 银行
- 8、mysql外键(FOREIGN KEY)的简单使用
dcj3sjt126com
mysql
一、基本概念
1、MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引。
2、外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录与另一个表的多条记录连接。
3、如
- java循环标签 Foreach
shuizhaosi888
标签java循环foreach
1. 简单的for循环
public static void main(String[] args) {
for (int i = 1, y = i + 10; i < 5 && y < 12; i++, y = i * 2) {
System.err.println("i=" + i + " y="
- Spring Security(05)——异常信息本地化
234390216
exceptionSpring Security异常信息本地化
异常信息本地化
Spring Security支持将展现给终端用户看的异常信息本地化,这些信息包括认证失败、访问被拒绝等。而对于展现给开发者看的异常信息和日志信息(如配置错误)则是不能够进行本地化的,它们是以英文硬编码在Spring Security的代码中的。在Spring-Security-core-x
- DUBBO架构服务端告警Failed to send message Response
javamingtingzhao
架构DUBBO
废话不多说,警告日志如下,不知道有哪位遇到过,此异常在服务端抛出(服务器启动第一次运行会有这个警告),后续运行没问题,找了好久真心不知道哪里错了。
WARN 2015-07-18 22:31:15,272 com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(84)
- JS中Date对象中几个用法
leeqq
JavaScriptDate最后一天
近来工作中遇到这样的两个需求
1. 给个Date对象,找出该时间所在月的第一天和最后一天
2. 给个Date对象,找出该时间所在周的第一天和最后一天
需求1中的找月第一天很简单,我记得api中有setDate方法可以使用
使用setDate方法前,先看看getDate
var date = new Date();
console.log(date);
// Sat J
- MFC中使用ado技术操作数据库
你不认识的休道人
sqlmfc
1.在stdafx.h中导入ado动态链接库
#import"C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","end")2.在CTestApp文件的InitInstance()函数中domodal之前写::CoIniti
- Android Studio加速
rensanning
android studio
Android Studio慢、吃内存!启动时后会立即通过Gradle来sync & build工程。
(1)设置Android Studio
a) 禁用插件
File -> Settings... Plugins 去掉一些没有用的插件。
比如:Git Integration、GitHub、Google Cloud Testing、Google Cloud
- 各数据库的批量Update操作
tomcat_oracle
javaoraclesqlmysqlsqlite
MyBatis的update元素的用法与insert元素基本相同,因此本篇不打算重复了。本篇仅记录批量update操作的
sql语句,懂得SQL语句,那么MyBatis部分的操作就简单了。 注意:下列批量更新语句都是作为一个事务整体执行,要不全部成功,要不全部回滚。
MSSQL的SQL语句
WITH R AS(
SELECT 'John' as name, 18 as
- html禁止清除input文本输入缓存
xp9802
input
多数浏览器默认会缓存input的值,只有使用ctl+F5强制刷新的才可以清除缓存记录。如果不想让浏览器缓存input的值,有2种方法:
方法一: 在不想使用缓存的input中添加 autocomplete="off"; eg: <input type="text" autocomplete="off" name