Javaプログラミング/Javaプログラミング関連情報

[android] グラフィックを描こう!(4ページ目)

androidでは、Viewクラスを定義してグラフィックの描画を行います。その基本をマスターしましょう。

執筆者:掌田 津耶乃

イメージリソースの表示


更に複雑なグラフィックを表示させたい場合には、あらかじめビットマップイメージファイルをリソースに用意し、これをロードして描画させる、というやり方をとります。これも実際にやってみましょう。

まず、イメージファイルを作成します。androidでは、JPEG、PNG、GIFといったイメージを利用することができます。ここでは「image.jpg」というJPEGイメージファイルを作成することにしましょう。

イメージは、「res」内の「drawable」というフォルダの中にコピーしておきます。ここには、既に「icon.png」というアイコンのイメージが用意されていますね。描画に関するイメージは、ここにまとめておくのが基本です。

では、このイメージを実際に画面に描画してみましょう。


public class MyAndy extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    DrawView view = new DrawView(getApplication());
    setContentView(view);
  }
}

class DrawView extends View {
  private Bitmap img;

  public DrawView(Context context) {
    super(context);
    Resources res = this.getContext().getResources();
    img = BitmapFactory.decodeResource(res, R.drawable.image);
  }
  
  public void onDraw(Canvas c){
    c.drawColor(Color.BLACK);
    
    Paint fill_paint = new Paint();
    c.drawBitmap(img, 50, 50, fill_paint);
    
  }
}

イメージリソースの描画例。

ここでは、「Bitmap」というフィールドを用意していますね。これが、ビットマップイメージのクラスになります。

Resources res = this.getContext().getResources();

まず、リソースを扱うためのクラス「Resources」を用意します。これはActivityクラスのgetContextで得られるContextクラスに用意されている「getResources」を使います。

img = BitmapFactory.decodeResource(res, R.drawable.image);

続いて、BitmapFactoryというクラスにある「decodeResource」メソッドを呼び出します。これは、指定されたリソースを読み込み、Bitmapオブジェクトに変換して返すものです。引数には、Resourcesインスタンスと、読み込むイメージの番号を指定します。番号Dは、例によってRクラスのdrawableから取り出します。ここに、image.jpgの番号が自動生成されているはずです(drawableには、「drawable」フォルダに入れてあるファイル名のフィールドが自動的に用意されます)。

これでリソースからイメージデータを取り出し、Bitmapとして取得するところまでできました。後は、onDraw内でこれを描画するだけです。

c.drawBitmap(img, 50, 50, fill_paint);

「drawBitmap」が、そのためのメソッドです。これは引数にBitmapインスタンス、描画する横・縦位置、Paintインスタンスをそれぞれ渡します。横・縦位置の代りに、RectFを渡すことで、指定した領域内にイメージを描画させることなども可能です。

さあ、これで主なグラフィックの描画はだいたいできるようになりました。それぞれで実際に図形を描くサンプルをいろいろと動かして、グラフィックの基本をしっかり理解しておきましょう。
【編集部おすすめの購入サイト】
Amazonで Java 関連の書籍をチェック!楽天市場で Java 関連の書籍をチェック!
  • 前のページへ
  • 1
  • 2
  • 3
  • 4
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます