Android 学习 SurfaceView

本文详细介绍了Android中SurfaceView的基本概念、特点及使用方式,并深入探讨了Canvas(画布)及其常用方法,包括画布裁剪技巧,以及Paint(画笔)的设置和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.SurfaceView

(1)作用:

SurfaceView 继承了Viwe,有View的一切特性,需要通过Canvas画布来绘制。
在Android里主要用来做游戏。

(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 类中定义好的一些色值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值