blog

Android開発速習チュートリアルXII:Pilot Bee 2D Graphics Library

アプリケーションのメインアクティビティが定義できたので、次は具体的な2D描画のサンプルを書き始めます。メニュー、コンテンツメニュー、ダイアログ、カスタムダイアログ、ボタンなどです。...

Apr 26, 2014 · 5 min. read
シェア

AndroidGraphics2DTutorialでは、アプリケーションのメインとなるActivityを定義しています。例によって、Menu、Content Menu、Dialog、Custom Dialog、ButtonなどのUIコントロールが異なります。LeadBee Graphics 2D APIは、様々な基本的な図形、パス、テキスト、適切なフォント、イメージを統一された方法で処理するモバイルプラットフォーム用のグラフィックスエンジンを実装しています。 つまり、Graphics 2D APIは、Java SEに対応するものと同様の2次元グラフィックス・ライブラリAPIを実装しています。

主な機能は以下の通り:

  • 様々な基本図形をサポート:曲線、長方形、楕円など。
  • グラフィック、テキスト、イメージの衝突検出をサポート
  • カラーサポートとカラーマネジメントの強化
  • 図面の品質管理
  • 塗りつぶし、縁取り、様々な線画
  • 2Dグラフィックスの変形
  • ベクターフォント
  • 左から右、右から左、上から下の表示スタイル
  • アンチパターニング
  • 透明度のサポート
  • アイコンとグラフィック

詳細は、 Silverlight Lead Bee 2D Graphics Library exampleを参照してください。

Android開発チュートリアルIX:アプリケーションフレームワークの作成 」では、すべてのサンプルアクティビティの親クラスとして、基本クラスGraphics2DActivityを定義しました:

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オブジェクトは、幅×高さの整数の2次元配列です。この配列の各値は32整数です。フォーマットはARGBで、透明度、赤、緑、青を表します。描画ボード上での描画操作はこれらの色の値を変更します。

抽象メソッド protected abstract void drawImage(); 異なるコンテンツを描画するために使用します。

com.pstreets.graphics2d.example.Colorsを修正し、Pilot Bee 2D Graphics Libraryを使用して異なる色を描画します。Java SEまたは.Net Frameworkを使用したことがある場合、Pilot Bee 2D Graphics Libraryが提供するAPIがそれらの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);       
     }    
    } 

Colors Activityはとてもシンプルで、View以外のUIはありません。 UIを表示するには、"Back "を押してサンプルリストに戻ります。

Read next