鍍金池/ 教程/ Android/ 引路蜂二維圖形庫簡介及顏色示例
Dialog 顯示圖像
線程 Bezier 曲線
創(chuàng)建應(yīng)用程序框架
引路蜂二維圖形庫簡介及顏色示例
Android 應(yīng)用基本概念
Intents 和 Intent Filters
安裝開發(fā)環(huán)境
Option Menu 畫筆示例
自定義對話框 Transform
數(shù)據(jù)綁定 Data Binding
概述
Broadcast Receiver 短信觸發(fā)示例
發(fā)布應(yīng)用
自定義 Adapter 顯示列表
RadioButton 多邊形及路徑繪制
訪問 Internet 繪製在線地圖
第一個應(yīng)用 Hello World
Activities
Button 畫刷示例
使用資源 Resources
Context Menu 繪制幾何圖形
用戶界面設(shè)計(jì)
引路蜂二維圖形繪制實(shí)例功能定義

引路蜂二維圖形庫簡介及顏色示例

AndroidGraphics2DTutorial 定義了應(yīng)用的主 Activity,下面就可以開始寫每個具體的二維繪圖示例。不同的例子將盡量采用不同的 UI 控件:Menu,Content Menu,Dialog,Custom Dialog,Button 等等。例子采用了引路蜂二維圖形庫,引路蜂二維圖形庫 Graphics 2D API 實(shí)現(xiàn)了移動平臺(Java ME,Blackberry,iPhone,Android,Windows Phone)上圖形引擎,它能夠以一種統(tǒng)一的方式處理各種基本圖形(Shape),路徑(Path),文本(Texts),適量字體及圖像。 簡單的說來,Graphics 2D API 實(shí)現(xiàn)了與之對應(yīng)的 Java SE 上類似的二維圖形庫 API。

主要功能如下:

  • 支持各種基本圖形:曲線,矩形,橢圓等;
  • 支持繪制任意幾何圖形
  • 支持在圖形,文體,圖象上的碰撞檢測
  • 增強(qiáng)的顏色扶持及顏色管理
  • 控制圖形繪制的質(zhì)量
  • 填充,外框,各種線條繪制
  • 二維圖形變換
  • 矢量字體
  • 從左到右,從右到左,從上到下顯示文體
  • 反走樣
  • 透明度支持
  • 圖標(biāo),及圖象繪制

詳細(xì)的內(nèi)容可以參見 Silverlight 引路蜂二維圖形庫示例

我們在 Android簡明開發(fā)教程九:創(chuàng)建應(yīng)用程序框架中定義了一個基類 Graphics2DActivity 作為所有示例Activity的父類:

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 的二維整型數(shù)組來表示的。這個數(shù)組的每個值為一個32為整數(shù)。格式為 ARGB,分別代表透明度,紅色,綠色,藍(lán)色。在畫板上的繪制操作(點(diǎn),線,多邊形,填充等)是修改這些顏色值。

R.layout.main 中可以使用 GuidebeeGraphics2DSurfaceView 或是 GuidebeeGraphics2DView 來作為畫板的顯示結(jié)果。

抽象方法 protected abstract void drawImage();用來繪制不同的內(nèi)容。

修改 com.pstreets.graphics2d.example.Colors 來使用引路蜂二維圖形庫繪制不同的顏色,如果以前用過 Java SE或是 .Net Framework,你會覺得引路蜂二維圖形庫提供的API和它們非常相似,代碼很好理解。

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);

 }

}

http://wiki.jikexueyuan.com/project/android-development-tutorial/images/22.png" alt="" />

Colors Activity 非常簡單,除 View 之外,沒有其它 UI。 按“Back”后可以退回示例列表顯示UI。

Tags: Android