- 浏览: 225423 次
- 性别:
- 来自: 淄博
文章分类
- 全部博客 (666)
- java (6)
- android (9)
- 架构 (0)
- android游戏 (13)
- android系统 (14)
- c++ (14)
- 数据库 (10)
- javascript (2)
- 版本控制 (1)
- webservice (1)
- linux (5)
- uml (1)
- android多媒体部分 (16)
- java中的JNI (6)
- HTML5 (5)
- CSS3 (1)
- swing (13)
- 线程并发 (9)
- 分布式 (5)
- 云计算 (1)
- 通信协议 (4)
- xml (4)
- c# (1)
- lucene (0)
- ibatis (0)
- hibernate (3)
- struts1 (3)
- struts2 (4)
- jsf (0)
- spring (5)
- spring for android (0)
- 感悟 (2)
- jpa (1)
- android gis (1)
- jbpm (0)
- java设计模式 (8)
- java web (4)
- EXT js (0)
- node JS (2)
- python (3)
- c (17)
- weblogic (0)
- opencv (1)
最新评论
/**
* 可视区域
*
* @time 上午10:42:39
* @author retacn yue
* @Email zhenhuayue@sina.com
*/
@SuppressWarnings("unused")
public class ClipCanvasSurfaceView extends SurfaceView implements Callback, Runnable {
private boolean flag;// surfaceView状态标志位
private SurfaceHolder sfh;
private Paint paint;
private Bitmap bitmap;
private Thread thread;
private Canvas canvas;
private int screenX, screenY;
public ClipCanvasSurfaceView(Context context) {
super(context);
/********** 画图所必需 *********************/
sfh = this.getHolder();// 获得surfaceHolder对象
sfh.addCallback(this);
thread = new Thread(this);
paint = new Paint();// 新建画笔
paint.setColor(Color.WHITE);// 设置画笔颜色
paint.setAntiAlias(true);// 消除锯齿
this.setKeepScreenOn(true);// 保持屏幕常亮
this.setFocusable(true);
/********************************************/
bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.icon);
}
@SuppressWarnings("static-access")
@Override
public void run() {
while (flag) {
// 绘图
draw();
try {
thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/**
* 绘图
*/
private void draw() {
try {
canvas = sfh.lockCanvas();
if (null != canvas) {
// 填充,充当刷屏
canvas.drawColor(Color.BLACK);
// 矩形可见区域
/*
* canvas.save(); canvas.clipRect(0, 0, 20, 20);//矩形大小
* canvas.drawBitmap(bitmap, 0, 0, paint); canvas.restore();
*/
// 利用path设置可见区域
/*
* canvas.save(); Path path=new Path(); path.addCircle(30, 30,
* 30, Direction.CCW); canvas.clipPath(path);
* canvas.drawBitmap(bitmap, 10, 10, paint);
*/
// 利用region设置可视区域
canvas.save();
Region region = new Region();
region.op(new Rect(20, 20, 100, 100), Region.Op.UNION);
region.op(new Rect(40, 20, 80, 150), Region.Op.XOR);
canvas.clipRegion(region);
canvas.drawBitmap(bitmap, 0, 0, paint);
canvas.restore();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != canvas) {
sfh.unlockCanvasAndPost(canvas);
}
}
}
/**
* 游戏逻辑
*/
private void logic() {
}
/**
* 创建surfaceView时使用
*/
@Override
public void surfaceCreated(SurfaceHolder holder) {
screenX = this.getWidth();
screenY = this.getHeight();
flag = true;
// 实例化线程
thread = new Thread(this);
thread.start();
}
/**
* 改变时调用
*/
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
/**
* 销毁时调用
*/
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
flag = false;
}
}
发表评论
-
android游戏开发学习笔记一(学习书籍 Android游戏编程之从零开始)
2012-09-05 11:52 571/** * 一个简单的游戏框架 * 没有按键处理,声音 ... -
android游戏开发学习笔记二(学习书籍 Android游戏编程之从零开始)
2012-09-05 11:54 491/** * 画布 * * @author 岳 ... -
android游戏开发学习笔记三(学习书籍 Android游戏编程之从零开始)
2012-09-05 11:55 617/** * 画笔 * * @author 岳 ... -
android游戏开发学习笔记四(学习书籍 Android游戏编程之从零开始)
2012-09-05 11:57 537/** * 位图 * * @author 岳振华 * ... -
android游戏开发学习笔记五(学习书籍 Android游戏编程之从零开始)
2012-09-05 12:01 663/** * 剪切动画+移动位图 * * @author ... -
android游戏开发学习笔记六(学习书籍 Android游戏编程之从零开始)
2012-09-07 10:37 522/** * 位图 * * @author 岳振华 * ... -
android 游戏学习(jbox2d)
2012-09-09 11:14 520导入jbox2d-2.0.1-library-only.jar ... -
android游戏开发学习笔之八 (学习书籍 Android游戏编程之从零开始)
2012-09-09 11:23 472/** * 操作游戏中的人物 * * @time 上午1 ... -
android游戏开发学习笔之九 (学习书籍 Android游戏编程之从零开始)
2012-09-09 11:25 675/** * 矩形碰撞 * * @time 上午11:29 ... -
android 启动流程
2012-09-10 15:45 403bootload 加载linux 内核 挂载ramd ... -
android jbox2d学习笔记一 滑轮关节
2012-09-13 12:45 560/** * 滑轮关节 * * @time 下午12:49 ... -
andriod jbox2d学习笔记二 通过移动关节移动body
2012-09-13 12:47 569/** * 通过移动关节移动body * * @time ...
相关推荐
《Android 4游戏编程入门经典》将引导你在Android平台上完整地开发出3个示例游戏,包括2D游戏和3D游戏。本书首先介绍游戏开发的理论基础,而且通过只使用剪刀、笔和纸从头设计一个完整的游戏,教会你游戏设计的基础...
第8章 2d游戏编程技巧 8.1 写在开始 8.2 向量 8.2.1 使用向量 8.2.2 一点三角学的知识 8.2.3 实现一个向量类 8.2.4 一个简单的用法示例 8.3 2d物理定律浅析 8.3.1 牛顿和欧拉,永远的好朋友 8.3.2...
《android4游戏编程入门经典》将引导你在android平台上完整地开发出3个示例游戏,包括2d游戏和3d游戏。本书首先介绍游戏开发的理论基础,而且通过只使用剪刀、笔和纸从头设计一个完整的游戏,教会你游戏设计的基础...
《Android4游戏编程入门经典》是2012年清华大学出版社出版的图书,作者是(美)策希纳(Zechner,M.),无(美)格林(Green,R.)。 第1章 Android,后起之秀 1 1.1 Android简介 1 1.2 版本分裂 3 1.3 谷歌的角色 3 ...
4-16-1(游戏保存之SharedPreference) 4-16-2(游戏保存之Stream) 4-3(View游戏框架) 4-4(SurfaceView游戏框架) 4-7-1(贝塞尔曲线) 4-7-2(Canvas画布) 4-8(Paint画笔) 4-9(Bitmap位图渲染与操作) 5-1(飞行射击游戏实战...
《Android 4游戏编程入门经典》囊括了成为一名成功的Android游戏开发者所需的全 部知识。本书是一本可以信赖的指南,能够帮助你在移动游戏开发中迅速“升级”。学完 本书并加以融会贯通,就能够编写出成功的Android...
Android图像处理的画笔特效处理demo
网易2018校招Android开发工程师笔试卷及答案.pdf
android ,笔画回放,触摸写字,Canvas 转 Bitmap
余志龙、陈昱勋、郑名杰、陈小风,分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言...
余志龙、陈昱勋、郑名杰、陈小风,分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言...
让小朋友在手机上看动画演示笔画顺序,然后...本章将使用 Android技术开发一款书写数字的游戏,让小朋友在玩中学会写数字。欢乐写数字程序集合了页面布局、设置颜色、动画演示、背量景音乐、添加功能按钮及对话框等技术。
余志龙、陈昱勋、郑名杰、陈小风,分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言...
余志龙、陈昱勋、郑名杰、陈小风,分别来自手机制造业、电视媒体业、网络、电信产业、软件开发等领域,擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及12EE、JSP、Servlet、Java Bean、PHP、C#等程序语言...
除了常用的画笔属性,比如普通的画笔(Paint),带边框、填充的style,颜色(Color),宽度(StrokeWidth),抗锯齿(ANTI_ALIAS_FLAG)等,Android还提供了各种各样专业的画笔工具,如记号笔、毛笔、蜡笔等,使用它们可以...
android之Fragment学习dome http://blog.csdn.net/u014715724/article/details/52682491
全书共分11章,主要以范例集的方式来讲述android的知识点,详细介绍了开发android的人机交互界面、android常用的开发控件、android手机收发短信等通信服务、开发android手机的自动服务功能和娱乐多媒体功能以及...
Android 应用开发源码 参考与学习使用