android graphic:canvas
package org.example.sudoku;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.SurfaceHolder.Callback;
import android.view.animation.Animation;public class MySurfaceView extends SurfaceView implements Callback, Runnable {// 备注1private SurfaceHolder sfh;private Thread th;private Canvas canvas;private Paint paint;private int ScreenW, ScreenH;public MySurfaceView(Context context) {super(context);th = new Thread(this);sfh = this.getHolder();sfh.addCallback(this); // 备注1paint = new Paint();paint.setAntiAlias(true);paint.setColor(Color.RED);this.setKeepScreenOn(true);// 保持屏幕常亮}@Overridepublic void startAnimation(Animation animation) {super.startAnimation(animation);}public void surfaceCreated(SurfaceHolder holder) {ScreenW = this.getWidth();// 备注2ScreenH = this.getHeight();th.start();}private void draw() {try {canvas = sfh.lockCanvas(); // 得到一个canvas实例canvas.drawColor(Color.WHITE);// 刷屏canvas.drawText("Himi", 100, 100, paint);// 画文字文本canvas.drawText("这就是简单的一个游戏框架", 100, 130, paint);} catch (Exception ex) {} finally { // 备注3if (canvas != null)sfh.unlockCanvasAndPost(canvas); // 将画好的画布提交}}public void run() {while (true) {draw();try {Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {}public void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub}
}
代码解释:
0) surfaceview初始化的时候,创建了一个thread。因为这个surfaceview 继承与runnable接口,所以this指针可以传给这个thread.
当这个thread开始运行时,它会从this.run ()开始运行。
1) surface创建的时候,会调用到surfaceCreated()。这个函数中调用了一个thread.start()。这样这个thread就运行在run()函数当中。
2)run函数调用draw()方法,绘制图形。
转载于:https://www.cnblogs.com/geeks/p/3283231.html
android graphic:canvas相关推荐
- Android之canvas详解
首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, y ...
- Android Graphic 架构
原址 这篇文章中,我们会展示android Graphic 的架构. Androidframework 我们知道Android framework 提供了两大类graphicrender API.一是 ...
- Android中Canvas绘图之Shader使用图文详解
概述 我们在用Android中的Canvas绘制各种图形时,可以通过Paint.setShader(shader)方法为画笔Paint设置shader,这样就可以绘制出多彩的图形.那么Shader是什 ...
- android中matrix的单位,Android中canvas和matrix之间的关系是什么?
我读了这个画布概述: The Canvas class holds the "draw" calls. To draw something, you need 4 basic co ...
- Android之Canvas的drawRoundRect()
1 问题 Canvas的drawRoundRect()函数怎么用 public void drawRoundRect(RectF rect, float rx, float ry, Paint pai ...
- Android可滑动画板,Android 利用 Canvas 画画板
首先新建一个项目工程,建立文件,如下图所示 首先配置页面布局文件activity_main.xml,如下图所示: xmlns:tools="http://schemas.android.co ...
- Android之Canvas画笔和画布
久违的Canvas画布,终于学到这里了,学完以后附上博文一篇以便日后记不住. 目录 一.Canvas(画布) 二.Paint(画笔) 三.实例 涉及的相关知识点 1.绘制安卓机器人 2.绘制文本 3. ...
- android canvas 背景图片,Android更改canvas背景颜色而不会丢失任何图纸
已经给出了你的问题的答案都指向了正确的方向:你需要在单独的图层中分离背景颜色块和前景图,然后合并它们,然后将它们全部保存在.png文件中. 这就是Adobe Photoshop工作流程的设计--如果我 ...
- android paint跑马灯,Android使用Canvas实现跑马灯
网上的很多的教程都是通过更改TextView的属性进行跑马灯的设计.这样做有很多的缺点: 1.如果TextView没有获取焦点,那么跑马灯的效果无法实现. 2.如果文本长度小于TextView的宽度, ...
最新文章
- 使用注解打造自己的IOC框架
- 深度强化学习入门介绍
- 用VS.NET2003制作WEB应用程序的安装包
- arduino tft 方向_ESP32在Arduino环境下玩转 LVGL,ESP32移植LVGL详细教程
- java 内存情况_java查看jvm内存使用情况
- 一起谈.NET技术,ASP.NET MVC2.0在Tab页中实现异步无刷新分页
- CSS 属性选择器备忘
- linux1.0内核下载,LINUX1.0 内核是系统的心脏 - 下载 - 搜珍网
- 物联网四大产业群的典型应用场景
- 谷歌浏览器如何正确离线网页
- 关于购买域名的一些建议
- 线性方程组解个数的判定和求解
- 联想拯救者wif开不了_联想拯救者为什么连不上wifi
- 第四节 电路心法 基尔霍夫电压定律与电流定律
- Banner本地,网络,图片轮播
- js 和 min.js 有什么区别
- Revit插件建模助手尺寸定位标注和标注避让操作
- 14、RH850 F1 RAM存储器介绍
- LG P5238 整数校验器
- 噁二唑和三唑衍生物(PXZ-OXD, 2PXZ-OXD,2PXZ-TAZ,PXZ-TAZ)