surfaceview:Android 学习 SurfaceView

 2021-07-04 11:36    77  

一.SurfaceView

surfaceview:Android 学习 SurfaceView

(1)作用surfaceview:

surfaceview:Android 学习 SurfaceView

SurfaceView 继承了Viwe,有View的一切特性,需要通过Canvas画布来绘制surfaceview。

surfaceview:Android 学习 SurfaceView

在Android里主要用来做游戏surfaceview。

(2)特点:

1.不能单独用来显示,必须要依附一个窗体。

2.可以直接在子线程中刷新UI。

(3)使用方式:

1.在布局里放入SurfaceView

2.实现SurfaceHolder.Callback

3.绘制画布更新画布到SurfaceView,通过lockCanvas()将返回绘制的canvas

二.Canvas(画布):

(1)定义:

这个类相当于一个画布,可以在这个类里画很多东西

(2)常用的几个方法:

drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) //贴图,参数一就是我们常规的Bitmap对象,参数二是源区域(这里是bitmap),参数三是目标区域(应该在canvas的位置和大小),参数四是Paint画刷对象,因为用到了缩放和拉伸的可能,当原始Rect不等于目标Rect时性能将会有大幅损失。

drawCircle(float cx, float cy, float radius,Paint paint)// 绘制圆,参数一是中心点的x轴,参数二是中心点的y轴,参数三是半径,参数四是paint对象;

(3)用Canvas进行画布裁剪:

用Canvas.clip方法

代码示例:

public void draw(Canvas canvas, Paint paint){

canvas.save();//对画布改动前,先保存画布

canvas.clipRect(x,y,x+oneW,y+oneH);//裁剪画布,裁剪一块矩形,参数是 (左,上,右,下)

canvas.drawBitmap(bitmap,x,y,paint);

canvas.restore();//恢复画布

}

三.Paint(画笔):

(1)意义:我们可以根据我们自己的需要去自行设置我们画笔的属性

(2)使用:

构造方法:

Paint()创建一个画笔对象;

Paint(int flags):在构造的时候可以传入一些定义好的属性,eg:Paint.ANTI_ALIAS_FLAG --用于绘制时抗锯齿

Paint(Paint paint):使用构造函数中Paint的属性生成一个新的Paint

常用的方法:

setARGB (int a, int r, int g, int b):用于设置画笔颜色,A 代表 alpha(透明度),R 代表Red (红色),G 代表 Green(绿色),B 代表 Blue(蓝色),它的色值采用16进制,取值在 0 - 255 之间 ,0(0x00) 即 完全没有 ,255(0xff) 代表满值。

setColor(int color):同样是用来设置颜色,如果是常用色,可以使用Color 类中定义好的一些色值。

后记:对于大部分转行的人来说,找机会把自己的基础知识补齐,边工作边补基础知识,真心很重要。

“我们相信人人都可以成为一个IT大神,现在开始,选择一条阳光大道,助你入门,学习的路上不再迷茫。这里是北京尚学堂,初学者转行到IT行业的聚集地。"

本文标签:学习Android

原文链接:https://www.xgfox.com/alpx/339.html

本文版权:如无特别标注,本站文章均为原创。