Android开发速成简洁教程十二:引路蜂二维图形库

移动开发 Android
AndroidGraphics2DTutorial定义了应用的主Activity,下面就可以开始写每个具体的二维绘图示例。不同的例子将尽量采用不同的UI控件:Menu,Content Menu,Dialog,Custom Dialog,Button等等。

AndroidGraphics2DTutorial定义了应用的主Activity,下面就可以开始写每个具体的二维绘图示例。不同的例子将尽量采用不同的UI控件:Menu,Content Menu,Dialog,Custom Dialog,Button等等。例子采用了引路蜂二维图形库,引路蜂二维图形库Graphics 2D API实现了移动平台(Java ME,Blackberry,iPhone,Android,Windows Phone)上图形引擎,它能够以一种统一的方式处理各种基本图形(Shape),路径(Path),文本(Texts),适量字体及图像。 简单的说来,Graphics 2D API实现了与之对应的Java SE上类似的二维图形库API。

主要功能如下:

  • 支持各种基本图形:曲线,矩形,椭圆等;支持绘制任意几何图形
  • 支持在图形,文体,图象上的碰撞检测
  • 增强的颜色扶持及颜色管理
  • 控制图形绘制的质量
  • 填充,外框,各种线条绘制
  • 二维图形变换
  • 矢量字体
  • 从左到右,从右到左,从上到下显示文体
  • 反走样
  • 透明度支持
  • 图标,及图象绘制

详细的内容可以参见 Silverlight 引路蜂二维图形库示例

我们在Android简明开发教程九:创建应用程序框架 中定义了一个基类Graphics2DActivity作为所有示例Activity的父类:

  1. public abstract class Graphics2DActivity extends Activity{    
  2.      protected Graphics2D graphics2D 
  3.         =SharedGraphics2DInstance.graphics2d;      
  4.      public void onCreate(Bundle savedInstanceState) { 
  5.       super.onCreate(savedInstanceState); 
  6.       setContentView(R.layout.main); 
  7.      }     
  8.      protected abstract void drawImage();     
  9.      public void onStart() { 
  10.       super.onStart(); 
  11.       drawImage();    
  12.      } 
  13.     } 

其中graphics2D为图形画板对象(Canvas)是以width  x height 的二维整型数组来表示的。这个数组的每个值为一个32为整数。格式为ARGB,分别代表透明度,红色,绿色,蓝色。在画板上的绘制操作(点,线,多边形, 填充等)是修改这些颜色值。

R.layout.main 中可以使用GuidebeeGraphics2DSurfaceView 或是GuidebeeGraphics2DView 来作为画板的显示结果。

抽象方法protected abstract void drawImage();用来绘制不同的内容。

修改com.pstreets.graphics2d.example.Colors 来使用引路蜂二维图形库绘制不同的颜色,如果以前用过Java  SE或是.Net Framework,你会觉得引路蜂二维图形库提供的API和它们非常相似,代码很好理解。

  1. public class Colors extends Graphics2DActivity{    
  2.      protected void drawImage(){        
  3.           /** 
  4.           * The solid (full opaque) red color in the ARGB space 
  5.           */ 
  6.          Color redColor    = new Color(0xffff0000);   
  7.          /** 
  8.           * The semi-opaque green color in the ARGB space (alpha is 0x78) 
  9.           */ 
  10.          Color greenColor = new Color(0x7800ff00,true);   
  11.          /** 
  12.           * The semi-opaque blue color in the ARGB space (alpha is 0x78) 
  13.           */ 
  14.          Color blueColor = new Color(0x780000ff,true); 
  15.          /** 
  16.           * The semi-opaque yellow color in the ARGB space ( alpha is 0x78) 
  17.           */ 
  18.          Color yellowColor = new Color(0x78ffff00,true);      
  19.          /** 
  20.           * The dash array 
  21.           */ 
  22.          int dashArray[] = { 20 ,8 }; 
  23.          graphics2D.clear(Color.WHITE); 
  24.          SolidBrush brush=new SolidBrush(redColor); 
  25.          graphics2D.fillOval(brush,30,60,80,80); 
  26.          brush=new SolidBrush(greenColor); 
  27.          graphics2D.fillOval(brush,60,30,80,80); 
  28.              Pen pen=new Pen(yellowColor,10,Pen.CAP_BUTT,Pen.JOIN_MITER,dashArray,0); 
  29.          brush=new SolidBrush(blueColor); 
  30.          graphics2D.setPenAndBrush(pen,brush); 
  31.          graphics2D.fillOval(null,90,60,80,80); 
  32.          graphics2D.drawOval(null,90,60,80,80);       
  33.      }    
  34.     } 

Colors  Activity非常简单,除View之外,没有其它UI。 按“Back”后可以退回示例列表显示UI。

责任编辑:闫佳明 来源: imobilebbs
相关推荐

2013-12-26 16:33:24

Android开发Android应用引路蜂二维图形绘制

2013-12-26 15:18:09

Android开发安装开发环境

2013-12-27 15:31:26

Android开发Android应用资源Resources

2013-12-26 15:43:07

Android开发Android应用Activities

2013-12-26 15:10:08

Android开发应用和框架Linux 内核

2013-12-27 13:00:30

Android开发Android应用Context Men

2012-07-13 14:36:07

Java

2013-12-27 14:34:46

Android开发Android应用短信触发示例

2013-12-27 14:05:22

Android开发Android应用Dialog

2013-12-27 14:16:43

Android开发Android应用线程

2013-12-26 15:34:19

Android开发Android应用基本概念

2013-12-26 16:24:13

Android开发Android应用Intents

2013-12-27 13:49:22

Android开发Android应用Button

2013-12-27 12:51:44

Android开发Android应用引路蜂

2013-12-26 16:59:12

Android开发Android应用数据绑定Data Bi

2013-12-27 16:06:10

Android开发Android应用发布应用

2013-12-27 13:27:05

Android开发Android应用RadioButton

2013-12-26 15:46:30

Android开发Android应用用户界面设计

2013-12-26 16:46:21

2013-12-26 17:08:36

Android开发Android应用自定义Adapter显
点赞
收藏

51CTO技术栈公众号