androidcanvas缩放
Ⅰ android编程 怎么让画面停住一段时间
canvas加Thread就可以实现,时钟的转动也是这样实现的.canvas可以对图片旋转或缩放
Ⅱ android canvas的画线和画字的区别
原来一直以为canvas.drawText是根据给出的坐标做为左上角来画的,今天才发现给出的坐标是左下角坐标。
canvas.drawText("Hello World!", 50, 110, paint);
canvas.drawLine(50, 110, 150, 110, paint);
注意观察横线的开始位置
Ⅲ Android绘图之Canvas变换(6)
前面讲解了Canvas的基本概念, Android绘图之Canvas概念理解(5) ,
对Canvas的概念进行了分析,但是没有说明和屏幕的关系,Canvas不等于屏幕,屏幕不会动的,我们也无法对屏幕进行(平移,缩放等)操作,只能对Canvas进行操作,所以对Canvas进行操作,屏幕不动,最终会导致看到的图像不同。
下面开始讲解Canvas的变幻操作:
包括:translate,rotate,scale,skew,clip,clipout,matrix
先从最简单的平移开始:
对Canvas进行平移,
dx: x轴方向进行平移,正值向屏幕右侧
dy:y轴方向进行平移,正值向屏幕下方
绘制两个点查看原点位置。
原点显然改变了,以后再绘制任何形状都是以translate后的原点开始绘制。
参数说明
sx:横向的缩放,默认为1,小数缩小,整数放大
sy:纵向的缩放,默认为1,小数缩小,整数放大
px,py,看源码知道是先translate,执行sx,sy然后再translate反方向。
第二次translate的坐标为(-px sx,-px sy),最终的效果就是px,py是缩放后不动的点。
缩放后坐标减半。
如果想控制缩放后的位置,如何控制呢,这就需要第二个函数。
还可以控制其他位置,例如控制缩放后在中心。
rotate有两个函数:
rotate(float degrees)
rotate(float degrees, float px, float py)
Degree:旋转的角度,正值为顺时针,负值为逆时针
Px,py:旋转的中心,如果不指定旋转中心默认为(0,0)点
指定旋转中心为矩形中心
参数说明:
sx:画布在x方向上倾斜相应的角度,sx倾斜角度的tan值,
sy:画布在y轴方向上倾斜相应的角度,sy为倾斜角度的tan值,
根据矩形或者路径裁剪画布,画布被切割之后,只有部分区域可用,其他区域无法绘制内容。
Clip函数切割的区域可用,clipOut未被切割的区域可用。(过时函数不再讲解)
Matrix提供了一些方法来控制变换:
android绘图之Paint(1)
android绘图之Canvas基础(2)
Android绘图之Path(3)
Android绘图之drawText绘制文本相关(4)
Android绘图之Canvas概念理解(5)
Android绘图之Canvas变换(6)
Android绘图之Canvas状态保存和恢复(7)
Android绘图之PathEffect (8)
Android绘图之LinearGradient线性渐变(9)
Android绘图之SweepGradient(10)
Android绘图之RadialGradient 放射渐变(11)
Android绘制之BitmapShader(12)
Android绘图之ComposeShader,PorterDuff.mode及Xfermode(13)
Android绘图之drawText,getTextBounds,measureText,FontMetrics,基线(14)
Android绘图之贝塞尔曲线简介(15)
Android绘图之PathMeasure(16)
Android 动态修改渐变 GradientDrawable
Ⅳ android canvas的drawText方法 如何设置字体大小和格式。
Canvas相当于画布,字体的大小格式在Paint上设置才正确, Paint 相当于画笔。代码如下,没有具体参数:
Paint paint = new Paint();
paint.setTextSize(textSize);//设置字体大小
paint.setTypeface(typeface);//设置字体类型
canvas.drawText(text, x, y, paint);//使用画笔paint
@Override
public void onDraw (Canvas canvas) {
Rect targetRect = new Rect(50, 50, 1000, 200);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setStrokeWidth(3);
paint.setTextSize(80);
String testString = "测试:ijkJQKA:1234";
paint.setColor(Color.CYAN);
canvas.drawRect(targetRect, paint);
paint.setColor(Color.RED);
FontMetricsInt fontMetrics = paint.getFontMetricsInt();
(4)androidcanvas缩放扩展阅读:
Screen Space - Camera
此模式类似Screen Space - Overlay,但区别是此模式将Canvas放置于某个Camera前固定距离。此Camera负责渲染所有UI元素,则摄像机参数(Camera Settings)直接影响UI表现。
比如Camera是透视模式(Perspective),则UI元素会基于Field of View的值而扭曲变形。同样的,若屏幕分辨率变更,或者视觉平截体(CameraFrustrum)改变,则Canvas自动调整自身尺寸作自适应。
Ⅳ 您好,android里如何把图片放大超过屏幕大小和拖动呢就像相册里一样。我试过很多办法都不行。
是要编写一个这样的功能么,android提供的API里面一般图片都是Bitmap,可以通过Canvas.drawBItMap的方法在View进行图片的绘制,在方法中需要进行传入一个类型为Matrix的参数,设置Martrix的一些参数就可以进行图片的放大的绘制,这只是显示,也就是MVC中的View层,然后通过提供的一些触摸函数的重写并实现自己需要的一些功能,如拖动,实际上就是改变BitMap绘制的位置。关于触摸的处理和图片的绘制可以在网上进行一些教程的搜索,我就不罗列了,最终就是需要通过控制函数来改变图片的绘制方式,这也许就是你所需要的功能。
Ⅵ Android Drawable,Bitmap,Canvas和Paint的区别
Bitmap - 称作位图
一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。
Drawable - 作为Android平下通用的图形对象
它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。
Canvas - 名为画布
我们可以看作是一种处理过程,使用各种方法来管理Bitmap、GL或者Path路径,同时它可以配合Matrix矩阵类给图像做旋转、缩放等操作,同时Canvas类还提供了裁剪、选取等操作。
Paint - 我们可以把它看做一个画图工具
比如画笔、画刷。他管理了每个画图工具的字体、颜色、样式。