在学习android中图形图像处理技术这部分内容时,对绘制圆弧函数canvas.drawArc()的用法.参数含义及画图原理很是不理解,在网上搜索了一些,加上自己的理解,在此做个小总结,作为学习过程中的一个小脚印: 一. 代码及相应的运行结果 1.填充圆弧但不含圆心(注意:代码变动部分加粗红色给出,下同) (1)代码 /***********配置画笔*************/ Paint paint=new Paint(); //采用默认设置创建一个画笔 paint.setAntiAlias(…
在使用canvas.drawText()绘制文字的时候,发现,如果需要绘制的文字较长,需要换行,通过在文字中加上“\n"或者”\r\n"都无法实现换行,如果非要使用canvas.drawText()方法来绘制,则必须自己手动的将文字给断开,这样很不方便,如果需要改变文字大小的时候,则还需要重新改写断开的方法,或者直接写个可以根据文字大小进行自动断开字符串的方法,但是,都是很繁琐的办法,其实,android中是有提供实现绘制字符串换行的方式的,如下: TextPaint textPain…
在开发中常常会有一些需求,比方显示头像,显示一些特殊的需求,将图片显示成圆角或者圆形或者其它的一些形状. 可是往往我们手上的图片或者从server获取到的图片都是方形的.这时候就须要我们自己进行处理,将图片处理成所须要的形状.正如茴香豆的的"茴"写法大于一种.经过我的研究.画出特殊图片的方法也不是一种,我发现了三种.且听我一一道来. 使用Xfermode 两图相交方式 通过查找资料发现android中能够设置画笔的Xfermode即相交模式,从而设置两张图相交之后的显示方式.详细模式见…
SensorManager是Android中的一个类,其有一个函数getRotationMatrix,可以计算出旋转矩阵,进而通过getOrientation求得设备的方向(航向角.俯仰角.横滚角).函数getRotationMatrix的源码如下所示,源码中虽然对该函数整体进行了解释,但是对代码中各个参数的计算没有说明,如为什么加速度的数值要和磁力计的数值做差乘.在网上各种搜索后,找到一段老外对这个问题的英文解释,很好的回答了上述问题.大意翻译(包括自己的理解)如下:加速度数值和磁力计数值均是…
这里我不想多解释什么,对于什么JNI和NDK的相关内容大家自己去百度或谷歌.我对Android的学习也只是个新手.废话少说直接进入正题. 一.在Eclipse中创建一个Android Application Project.相关参数如下: Application Name : HelloJni; Project Name: HelloJni; Package Name:com.example.hellojni 二.然后我们添加一个Jni类.相关参数如下: Source folder: Hello…
事实上每一个View中都有Canvas能够用来绘制动画.仅仅须要在这个View中重载onDraw()方法就能够,可是SurfaceView类是一个专门用来制动动画的类. Canvas(中文叫做"画布")就和HTML5中的canvas标签一样能够在一定区域内自由绘制图形.Canvas+SurfaceView制作的动画与View Animation和Property Animation这类动画比起来更加适合大量的集中播放的动画,比方游戏画面.相机的图像显示等. 由于SurfaceView一…
流程图,思维导图,拓扑图通常能把我们遇到的一些复杂的关系结构用图形的方式展现出来.在Latex中要想画这样的拓扑图,有一个很好用的绘图工具包 pgf/tikz . 1.pgf/tikz的安装:pgf/tikz 绘图工具用到的宏是 \usepackage{tikz} .如果你的Latex并不带有这个宏包,那就需要参考[1]中进行安装.也可以直接下载使用带有这个宏包的新版本 CTeX_2.9.2.164_Full. 2.pgf/tikz的使用:参考[2]pgf/tikz使用说明,这里详细介绍了pgf…
虽说以前学习过线性代数和图形学原理,但是在实际中碰到matrix还是疑惑了好一阵子,今天通过向同事请教终于找到一点门路,特总结如下: Matrix主要用于对平面进行缩放,平移,旋转以及倾斜操作,为简化矩阵变换,Android封装了一系列方法来进行矩阵变换,其中包括pre系列方法:preScale,preTranslate,preRotate,preSkew,set系列方法:setScale,setTranslate,setRotate,setSkew,post系列方法:postScale,pos…
在C语言中,函数的参数不仅可以是整数.小数.字符等具体的数据,还可以是指向它们的指针.用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁. 像数组.字符串.动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合. 有的时候,对于整数.小数.字符等基本类型数据的操作也必须要借助指针,一个典型的例子就是交换两个变量的值. 有些初学者可能会使用…
ios 想要绘图,要用到CGContextRef类.最基本的用法是在- (void)drawRect:(CGRect)rect 函数中绘制. Android 中要用到Canvas类.最基本的用法是在 protected void onDraw (Canvas canvas) 函数中绘制. 而context 和 canvas 的提供的函数也大体相同.  …