Android view 小总结】的更多相关文章

android 中, view 的绘制包含三步: 1. onMeasure(), 对view进行测量: 2. onLayout(),对view进行布局: 3.onDraw(),对view进行绘制. view的touch事件传递顺序: Activity——>window——>viewGroup——>child view…
1,转载:(http://blog.csdn.NET/lmj623565791/article/details/24500107),现在如下图的效果: 由上面的效果图可以看到其实是一个在一个圆上换不同的颜色绘制圆弧,这样的话我们来先看一下我们自定义的话需要提供什么 1,提供两种颜色 2,提供圆弧的宽度 3,绘制的圆弧的速度 OK,现在开始来自定义我们的属性,创建attrs文件,添加以下代码,反别代表第一种颜色.第二种颜色.圆弧宽度.圆弧绘制的速度 <?xml version="1.0&qu…
1,现在有这样一个需求,实现显示随机随机数可能在代码中直接很简单的就实现了,但是现在我们直接自定义View来实现这个效果,那么我们来分析一波吧,我们允许开发者自己设置这个textview的大小,颜色,和初始四位随机数的文字,那么我们需要提供自定义属性,好吧,首先把自定义属性的简单使用介绍一下吧: 首先在res/values文件夹下建利attrs.xml文件,由于这次我们功能决定我们要提供三个自定义属性,分别是textTitle String类型的,textColor是color类型的,textS…
1,昨天刚看了hongyang大神推荐的自定义时钟效果(传动门:http://www.jianshu.com/users/a45d19d680af/),效果还是不错的,自己又在github上找了找,发现了修复了bug的源码,然后就分析分析,先看一下效果: 思路分析一波,由于界面是在不停的绘制的,说以在View和SurfaceView之间我们要比较比较: View一般用于绘制静态页面或者界面元素跟随用户的操作(点击.拖拽等)而被动的改变位置.大小等 SurfaceView一般用于无需用户操作,界面…
1,关于Rect和RectF类的区别以前一直没有去关注它,刚刚了解了一下才知道都是用来确定矩形的区域,不过Rect是int类型的坐标而RectF是float类型的坐标,所以说RectF要更加精确.现在是要使用paint画出一个机器人的图片,如下图机器人的图片: 2,  看一下我们做出来的效果 再看看代码,基本上都是使用的RectF这个类来操作 package com.wangjitao.myview.view; import android.content.Context; import and…
1,现在要实现下图的简单效果,很简单  ,就是使用paint在canvas上绘制5中不同颜色的圆圈,效果图如下: 这是绘制基本图形一种最简单的方法,下面是它的代码 ,注释写的很详细,也就不去讲解了 MyCircleView.java package com.wangjitao.myview.view; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; imp…
2015-07-28 17:29:19 这一篇主要看看布局过程 一.布局过程肯定要不可避免的涉及到layout()和onLayout()方法,这两个方法都是定义在View.java中,源码如下: /** * Assign a size and position to a view and all of its * descendants * * <p>This is the second phase of the layout mechanism. * (The first is measur…
Android开发遇到的小问题之小解: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ eclipse里console里提示The launch will only sync the application package on the device 经查找是AndroidManifest.xml里的主activity里红色部分没加,, <activity …
2015-07-27 16:52:58 一.如何通过继承ViewGroup来实现自定义View?首先得搞清楚Android时如何绘制View的,参考Android官方文档:How Android Draws Views 以下翻译摘自:http://blog.csdn.net/linghu_java/article/details/23882681,这也是一片好文章,推荐大家看看- When an Activity receives focus, it will be requested to d…
对于Android View的测量,我们一句话总结为:"给我位置和大小,我就知道您长到那里". 为了让大家更好的理解这个结论,我这里先讲一个日常生活中的小故事:不知道大家玩过"瞎子画画"的游戏没,一个人蒙上眼睛,拿笔去画板上画一些指定的图案,另外一个人则充当他的"眼睛",通过语言告诉他在画板那个位置画一个多大的图案.倘若,这个人不告诉那个蒙着眼睛的人,在那个画一个多大的图案.那么这个蒙着眼睛的人此时真是"河里赶大车----------没…
PS:将来的你会感谢现在奋斗的自己.... 学习内容: 1.进度条 2.拖动条 3.星级评论条 1.进度条...       进图条这东西想必大家是很熟悉的...为了使用户不会觉得应用程序死掉了,因此为之设置一个进度条使应用程序的运行状态更好的反馈给客户...这也就是进度条的作用...因此一般的应用程序都会加入进度条...进度条分为圆形进度条和线性的进度条...目的都是一样的,只是展示的效果是不同的...用代码讲解一下... <LinearLayout xmlns:android="htt…
========= 5.0     android异常“android.view.InflateException: Binary XML file line # : Error inflating class” 今天用到viewPager写了个小demo测试FragmentStatePagerAdapter和FragmentPagerAdapter的区别,忽然报出了“android.view.InflateException: Binary XML file line # : Error in…
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** 开启小火箭 */ public void start(View view) { startService(new Int…
今天简单的学习了一下android拍照的简单实现. 当然该程序是个小例子,非常简单,没有什么复杂的操作,但是可以学习到Android 拍照API流程. 1.在布局文件中添加一个 surfaceView (用来展示预览的图片) 2.根据 SurfaceView  获得 Holder 3.给固定器设置 SurfaceHolder.Callback ; 这个 Callback 有一系列的周期方法, 比如:surfaceCreated,surfaceChanged,surfaceDestroyed等方法…
做android其实也有一段时间了,我们每个人都会碰到一些这样或那样的问题,碰到问题了就拼命百度,可是发现,我们解决问题的能力并没有提升很多,所以我才有想总结一下我项目中所用过的相关知识,并了解一下Android源代码中是如何定义这些属性的,如何去实现的.以后再碰到类似的问题,我该如何实现.本人也不常写博客,希望各位博友能指点,分享,并提出博客中不正确的地方,共勉!    首先我发一份我做的关于Android View深入实现的的XMind的思维导图,可以帮助我一起整理思路,若是博友有什么想到的…
(1)View:最基本的UI组件,表示屏幕上的一个矩形区域. (2)Window: 表示一个窗口,不一定有屏幕那么大,可以很大也可以很小:它包含一个View tree和窗口的layout 参数.View tree的root View可以通过getDecorView得到.还可以设置Window的Content View. (3)Activity:Activity包含一个Window,该Window在Activity的attach方法中通过调用PolicyManager.makeNewWindo创建…
Android  View视图系统分析和Scroller和OverScroller分析 View  视图分析         首先,我们知道.在Android中全部的视图资源(无论是Layout还是View),终于的父类都是View类.各式各样的Layout仅仅是对ViewGroup的一中特别的实现.各种View也仅仅是View的特别实现. 而ViewGroup也是对于View的一种实现.所以说全部的View元素在根本上都是一样的.当然这并不等于说View == ViewGroup,就好比仅仅有…
Android桌面小插件--Widget 效果图 实现 1. 创建Widget类 创建一个Widget类,并实现页面创建的时候,就实现显示时间 package com.kongqw.kqwwidget; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.ComponentName; import android.content.…
Android Widget小组件开发(一)--Android实现时钟Widget组件的步骤开发,这些知识也是必不可少的! PS:学习自某网站(不打广告) 这个小组件相信大家都很熟悉吧,以前的墨迹天气的时候我也经常用,现在好像很少有软件用了,个人感觉吧-他对于一个用户而言来说是十分方便,快捷的,而且我们可以定制一些各种各样的开关等等等等-. 我们新建一个工程--Widget > 一.开发步骤 1.绘制Widget布局(比较局限性的View) 2.配置Widget的属性 3.自定义APPwidge…
Android View的滑动 文章目录 Android View的滑动 一.实现移动 1.1 layout() 1.2 设置位置偏移量 1.3 改变布局参数 1.4 动画 1.5 ScrollTo以及ScrollBy 1.6 使用Scroller 典型使用方式: 1.7 几种滑动总结: 二.Scroller解析 a.startScroll b.invalidate c.computeScroll 三.View的滑动冲突 3.1 常见的滑动冲突与处理规则 3.1.1 内外滑动方向不一致 外部拦截…
在Android View体系(二)实现View滑动的六种方法这篇文章中我们讲到了用Scroller来实现View的滑动,所以这篇文章我们就不介绍Scroller是如何使用的了,本篇就从源码来分析下Scroller为何能够实现View的滑动. 1.Scroller的构造函数 要想使用Scroller,必须先调用new Scroller(),我们先来看看Scroller的构造函数: /** * Create a Scroller with the default duration and inte…
虽然是小问题一个,但也困扰了我一段时间,现在记下来,给自己做个备忘,也可以给其他人一个参考 view plaincopy to clipboardprint? 01-08 01:49:27.874: ERROR/WindowManager(473): Activity com.photos.MainActivity has leaked window android.widget.ImageButton@43e40d10 that was originally added here 01-08 …
深入理解Android View(一) View的位置參数信息 二.View的绘制过程 View的绘制过程一共分为三个部分: - measure(測量View的大小) - layout(确定View的位置) - draw(画出View) 通常我们的View都是以这种树结构呈现的.例如以下图 当然我们这里ViewGroup事实上上面事实上是放在DecorView中的.我们能够通过findViewbById(andorid.id.content)获取到顶级ViewGroup.这里的DecorView…
代码地址如下:http://www.demodashi.com/demo/13541.html 前言 以前我们实现这个功能都是用 BadgeView.java,大体就是将这个java类复制到自己的项目中,然后在项目中使用,今天讲的也是一款BadgeView,我将其封装称工具类Badgetor,下面作以讲解. "新"BadgeView的优点 BadgeView 库的导入 BadgeView的封装类Badgetor Badgetor在activity中的使用 效果图和项目结构图 一. &q…
Android 开发小工具之:Tools 属性 http://blog.chengyunfeng.com/?p=755#ixzz4apLZhfmi 今天来介绍一些 Android 开发过程中比较有用但是大家又不常用的小工具.这些小工具可以提高 Android 应用开发的效率.还可以提高代码质量.所以还是有必要使用的. 首先介绍布局文件中的 tools 属性. 如果你用 Android Studio 创建一个简单的示例项目,在生成的布局文件中会有这么一行内容: xmlns:tools=”http:…
概述 Android中View框架的工作机制中,主要有三个过程: 1.View树的測量(measure)Android View框架的measure机制 2.View树的布局(layout) Android View框架的layout机制 3.View树的绘制(draw)Android View框架的draw机制 View框架的工作流程为:測量每一个View大小(measure)-->把每一个View放置到对应的位置(layout)-->绘制每一个View(draw).          本文…
概述 上一篇 Android DecorView 与 Activity 绑定原理分析 分析了在调用 setContentView 之后,DecorView 是如何与 activity 关联在一起的,最后讲到了 ViewRootImpl 开始绘制的逻辑.本文接着上篇,继续往下讲,开始分析 view 的绘制流程. 上文说到了调用 performTraversals 进行绘制,由于 performTraversals 方法比较长,看一个简化版: // ViewRootImpl 类 private vo…
转载:9102年末,我对Android view的13条认识: (顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找)https://github.com/xiangjiana/Android-MS 一丶 View 的绘制流程? 参考答案 View 的工作流程主要是指 measure.layout.draw 这三大流程,即测量.布局和绘制,其中 measure 确定 View 的测量宽/ / 高,layout 确定 View 的最终宽/ / 高和 四个顶点的位置,而 draw 则将…
本文结合一些周知的概念和源码片段,对View动画的工作原理进行挖掘和分析.以下不是对源码一丝不苟的分析过程,只是以搞清楚Animation的执行过程.如何被周期性调用为目标粗略分析下相关方法的执行细节,最终贯穿View动画实际发生的一切. View动画使用 Android提供了属性动画(property animation).帧动画(frame-by-frame animation)和View动画( tweened animation:补间动画),View动画的使用相对简单,但又不像真正意义上的…
Android View.setId(int id) 用法 当要在代码中动态的添加View并且为其设置id时,如果直接用一个int值时,Studio会警告. 经过查询,动态设置id的方法有两种; 1. View.generateViewId(); 这个方法的返回值是个int值,方法的意思是获取一个可以用在setId(int id)方法中的int类型id; 官方文档说明: int generateViewId () Added in API level 17 Generate a value su…