- 浏览: 238828 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
maotou1988:
android基于netty的发送图片与文字demo,楼主共勉 ...
在android中使用netty框架通信 -
ZSRTFAT:
学习了,谢谢分享
android 基于surfaceview 的多点触控实现 -
charlotte:
学习了!!!!!
Java nio 客户端连接Server -
nilo:
您好, 本人菜鸟, 正在学习设计模式. 当我学习完简单工厂模式 ...
策略模式 -
fokman:
一江春水邀明月 写道缺少SocketInfoUtils Th ...
Java nio 客户端连接Server
Canvas 又称为画布,在游戏开发过程中是一个经常使用的类。下面举一个实例在完成画布的基本功能
代码如下:
public class MySurfaceView extends SurfaceView implements Callback, Runnable { //用于控制SurfaceView private SurfaceHolder sfh; //声明一个画笔 private Paint paint; //声明一条线程 private Thread th; //线程消亡的标识位 private boolean flag; //声明一个画布 private Canvas canvas; //声明屏幕的宽高 private int screenW, screenH; //设置画布绘图无锯齿 private PaintFlagsDrawFilter pfd = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); /** * SurfaceView初始化函数 */ public MySurfaceView(Context context) { super(context); //实例SurfaceHolder sfh = this.getHolder(); //为SurfaceView添加状态监听 sfh.addCallback(this); //实例一个画笔 paint = new Paint(); //设置画笔颜色为白色 paint.setColor(Color.WHITE); //设置焦点 setFocusable(true); } /** * SurfaceView视图创建,响应此函数 */ @Override public void surfaceCreated(SurfaceHolder holder) { screenW = this.getWidth(); screenH = this.getHeight(); flag = true; //实例线程 th = new Thread(this); //启动线程 th.start(); } /** * 游戏绘图 */ public void myDraw() { try { canvas = sfh.lockCanvas(); if (canvas != null) { //----设置画布绘图无锯齿 canvas.setDrawFilter(pfd); //----利用填充画布,刷屏 canvas.drawColor(Color.BLACK); //----绘制文本 canvas.drawText("drawText", 10, 10, paint); //----绘制像素点 canvas.drawPoint(10, 20, paint); //----绘制多个像素点 canvas.drawPoints(new float[] { 10, 30, 30, 30 }, paint); //----绘制直线 canvas.drawLine(10, 40, 50, 40, paint); //----绘制多条直线 canvas.drawLines(new float[] { 10, 50, 50, 50, 70, 50, 110, 50 }, paint); //----绘制矩形 canvas.drawRect(10, 60, 40, 100, paint); //----绘制矩形2 Rect rect = new Rect(10, 110, 60, 130); canvas.drawRect(rect, paint); canvas.drawRect(rect, paint); //----绘制圆角矩形 RectF rectF = new RectF(10, 140, 60, 170); canvas.drawRoundRect(rectF, 20, 20, paint); //----绘制圆形 canvas.drawCircle(20, 200, 20, paint); //----绘制弧形 canvas.drawArc(new RectF(150, 20, 200, 70), 0, 230, true, paint); //----绘制椭圆 canvas.drawOval(new RectF(150, 80, 180, 100), paint); //----绘制指定路径图形 Path path = new Path(); //设置路径起点 path.moveTo(160, 150); //路线1 path.lineTo(200, 150); //路线2 path.lineTo(180, 200); //路径结束 path.close(); canvas.drawPath(path, paint); //----绘制指定路径图形 Path pathCircle = new Path(); //添加一个圆形的路径 pathCircle.addCircle(130, 260, 20, Path.Direction.CCW); //----绘制带圆形的路径文本 canvas.drawTextOnPath("PathText", pathCircle, 10, 20, paint); } } catch (Exception e) { // TODO: handle exception } finally { if (canvas != null) sfh.unlockCanvasAndPost(canvas); } } /** * 触屏事件监听 */ @Override public boolean onTouchEvent(MotionEvent event) { return true; } /** * 按键事件监听 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return super.onKeyDown(keyCode, event); } @Override public void run() { while (flag) { long start = System.currentTimeMillis(); myDraw(); long end = System.currentTimeMillis(); try { if (end - start < 50) { Thread.sleep(50 - (end - start)); } } catch (InterruptedException e) { e.printStackTrace(); } } } /** * SurfaceView视图状态发生改变,响应此函数 */ @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } /** * SurfaceView视图消亡时,响应此函数 */ @Override public void surfaceDestroyed(SurfaceHolder holder) { flag = false; }
发表评论
-
获得手机相关信息的实现方法
2015-04-04 00:55 774本文介绍了如何通过android提供的servi ... -
android判断当前sdk版本以及是否是平板
2013-11-19 13:53 1278最近做了一个项目中需要使用appWidget,但是 ... -
android 程序检查当前应用是否在运行
2012-11-09 17:05 1065最近做一个项目,需要知道当前的android 程序是 ... -
netty 找不到org.jboss.netty.bootstrap.ClientBootstrap解决
2012-09-25 14:20 4018今天碰到一个莫名其妙的问题,在做socket连接的时候发 ... -
Netty 之Oio程序编写
2012-09-24 14:06 4504今日将android里面使用的socket 方式改成 ... -
定义文本样式
2012-09-06 14:19 1061android程序中的按钮经常需要定义文字的大小,是否加粗,居 ... -
点击按钮显示不同的状态
2012-09-06 14:05 978android给我们提供的UI还比较丰富,但是基本上都 ... -
android 两个listView 共存的显示问题
2012-08-07 09:55 2486如果在一个layout里面需要定义有两个listvie ... -
定义带箭头的Button 样式
2012-08-02 10:58 11152定义一个圆角的Button 样式 <style ... -
android UI入门三 自定义背景样式
2012-08-01 15:23 1370在android 开发应用中,大部份的开发人员 ... -
android UI入门二 定义图片横竖屏切换正确显示
2012-07-30 13:20 3206android开发的时候通常会使用到横竖屏切换,但是 ... -
android UI入门一
2012-07-24 12:20 913在ios系统中,常常看到绚丽的画面让人心动不已。然而在 ... -
android spinner 实现国码选择
2012-07-13 15:33 3925android 中得Spinner相当于是一个下拉框 ... -
在自己的android应用中调用打电话实现
2012-07-13 15:10 1049最近在做一个项目,需要在自己写的应用中调用打电话给别人 ... -
android 定义圆角Button
2012-06-30 15:31 5028定义styles.xml <?xml version= ... -
android 自定义导航控件
2012-06-26 15:19 7825在编写android应用程序的过程中,经常会使用到导航 ... -
android observer 处理handler消息
2012-06-12 09:41 2049在开发android网络应用程序,通常都会使用han ... -
android wifi 处理
2012-06-12 09:35 3184在android应用程序中可以很方便的使用wifi来处理不同的 ... -
android 基于surfaceview 的多点触控实现
2012-04-06 08:55 12369hello,各位朋友。最近接到一个功能需要实现多 ... -
给android imageView(图片) 添加超链接
2012-03-29 09:29 8048hi ,各位好朋友,最近忙于开发没有时间更新博客。 有很多朋 ...
相关推荐
学习Android自定义控件的必学前导知识——Canvas
本文实例为大家分享了android canvas使用line画半圆具体代码,供大家参考,具体内容如下 LineView.java public class LineView extends View { private int progress = 0; private int max = 100; private int ...
android 画曲线图 画三角形(多边形),可以画成股票K线图,儿童成长曲线等,使用android的canvas
主要介绍了 Android canvas drawBitmap方法详解及实例的相关资料,需要的朋友可以参考下
android 使用canvas把矩形图片变成圆角矩形显示 参考网址:http://blog.csdn.net/rhljiayou/article/details/7212620
Android Canvas绘图演示代码
讲解使用canvas.save()和canvas.restore()的demo
该代码是一个完整的Android工程,详细演示如了如何使用Android中的各种drawXXX方法,以及画笔Paint如何影响绘制的效果。 具体参见博文: http://blog.csdn.net/iispring/article/details/49770651
Android下使用Canvas画图,详细参见博客:http://www.cnblogs.com/plokmju/p/android_Canvas.html
实现在Kotlin中更方便使用canvas
Android 自定义画布canvas 实现绘制和清空画布功能,内含源码、apk
使用Android canvas 画图,供入门参考。图例见:http://blog.csdn.net/u010351494/article/details/46443351
Android canvas 放大 缩小 平移 各种绘图 自定义view 请自行修改
Android Canvas画布使用Demo源码.rar
android利用Paint在Canvas上实现竖排写字
NULL 博文链接:https://byandby.iteye.com/blog/825330
Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
Android通过Canvas手绘一个折线图详细查看https://blog.csdn.net/Iamzgx/article/details/79824969
对学习android的朋友在画图上有很大的参考意义