Android简明开发教程十二:引路蜂二维图形库简介及颜色示例

来源:互联网 发布:linux里面涉及到单词 编辑:程序博客网 时间:2024/05/01 20:53

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public abstract class Graphics2DActivity extends Activity{
  
 protected Graphics2D graphics2D
    =SharedGraphics2DInstance.graphics2d;
   
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
 }
   
 protected abstract void drawImage();
  
 public void onStart() {
  super.onStart();
  drawImage();
  
 }
}

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

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

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 产后两年了肚子肥胖松弛怎么办 在作文中写上自己的名字怎么办 外出玩耍时迷路了你会怎么办 外出玩耍时孩子总喜欢乱跑怎么办? 如果真的物价高的受不了怎么办 每晚要5次真的受不了怎么办 五年级的学生钢笔字写不好怎么办 全麻醉药过后让人产生幻觉怎么办? 网贷小象优品上被别人冒用了怎么办 当你和老人产生冲突时该怎么办 百度网盘会员到期后容量怎么办 一个人不停的给你发视频聊天怎么办 被谋杀后的身后事应该怎么办 社保交了五年被单位辞退怎么办 桅子花叶子变黄叶杆蔫怎么办 薄荷养的都黄了干掉了怎么办 被烟草局没收的烟要是假烟怎么办 干了10年工程不想干了怎么办 在服务行业当服务员干不下去怎么办 高中生晚上偷着跑出去玩怎么办 货车高速忘记过安全检查站了怎么办 u盘上的文件名称乱码了怎么办 暖气管掉进去一点水泥渣怎么办 暗埋在瓷砖下的暖气管漏水怎么办 埋在瓷砖下面的水管漏水怎么办 埋在瓷砖下的水管漏水怎么办 水压太大把水管撑坏了怎么办 无效安装包与系统不兼容怎么办 圣空法师持五戒范戒了怎么办 美航空要是不改中国台湾标志怎么办 淘宝买的东西质量有问题怎么办 天猫618长达20天c店怎么办 新开的淘宝店铺没有生意怎么办 淘宝账号登陆限制用不了花呗怎么办 闲鱼买家签收后说是空盒怎么办 在咸鱼卖东西买家恶意退货怎么办 淘宝联系不上买家物流返回怎么办 换了支付宝绑定手机号退款怎么办啊 淘宝评价错了追评评价错了怎么办 淘宝给客户退款后还给差评怎么办 淘宝账号处于下单保护状态怎么办