之前经常看到一些酷酷的图标效果, 深入进去发现不是直接用的图片, 而是一些以Vector标签开头的xml文件, 于是就看到了如下代码: <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportHeight="40" androi…
在上一篇博客<Android中Activity启动过程探究>中,已经从ActivityThread.main()开始,一路摸索到ViewRootImpl.performTraversals()了.本篇就来探究UI的绘制过程. performTraversals()方法非常长,其中关键性的三个步骤是依次调用了performMeasure(), performLayout(), performDraw().分别来看这三个步骤吧! Measure过程(测量过程) 直接来看performMeasure…
Android Vector曲折的兼容之路 两年前写书的时候,就在研究Android L提出的Vector,可研究下来发现,完全不具备兼容性,相信这也是它没有被广泛使用的一个原因,经过Google的不懈努力,现在Vector终于迎来了它的春天. 在文章后面,会给出本文的Demo和效果图,并开源在Github Vector Drawable Android 5.0发布的时候,Google提供了Vector的支持.Vector Drawable相对于普通的Drawable来说,有以下几个好处: Ve…
Android手势源码浅析-----手势绘制(GestureOverlayView)…
这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三:给自定义视图添加"流畅"的动画 Android自定义视图四:定制onMeasure强制显示为方形 有的时候自持扩展一个标准的Android视图是不够的.你需要在视图上绘制你自己的内容才行.本文将会讲述如何使用Canvas类来绘制一个折线图,并会讲述如何处理尺寸和padding. 如果你还没…
OpenCV3.4.1快速集成到Android studio中,10分钟搞定     转载 https://blog.csdn.net/yu540135101/article/details/82593860 1.下载地址(官网) https://www.opencv.org/opencv-3-4-1.html 2.导入Module 3.删除以下代码 在OpenCV模块的清单文件中删除以下代码 <uses-sdk android:minSdkVersion="8" android…
SVG是一种矢量图格式,是Scalable Vector Graphics三个单词的首字母缩写.在xml文件中的标签是<vector>,画出的图形可以像一般的图片资源使用,例子如下: <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewpo…
转载地址:http://www.jianshu.com/p/a3cb1e23c2c4#rd Android Support Library 23.2 出来以后,在Android 5.0(API级别21)以前的系统中,也可以定义矢量drawables,即VectorDrawable.它可以在不失清晰度的情况下进行缩放.你仅仅需要需要一个矢量图片的资源文件,而不再需要为每个屏幕密度设置一个资源文件,在一定程度上可以减小项目的体积. vector 标签下的最主要就是 pathData,其实pathDa…
SVG是一种矢量图格式,是Scalable Vector Graphics三个单词的首字母缩写.在xml文件中的标签是,画出的图形可以像一般的图片资源使用,例子如下: <vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:viewportHeight="200.0" android:viewportWi…
1,昨天刚看了hongyang大神推荐的自定义时钟效果(传动门:http://www.jianshu.com/users/a45d19d680af/),效果还是不错的,自己又在github上找了找,发现了修复了bug的源码,然后就分析分析,先看一下效果: 思路分析一波,由于界面是在不停的绘制的,说以在View和SurfaceView之间我们要比较比较: View一般用于绘制静态页面或者界面元素跟随用户的操作(点击.拖拽等)而被动的改变位置.大小等 SurfaceView一般用于无需用户操作,界面…