テクパー2020
テクニカルヘルパー


 アンドロイドアプリ開発 

◆ 画像(イメージ)の描画
・ 画像(イメージ)ファイルを描画します

1.新規プロジェクトで 「 Image 」 を新規に作成します

1)ファイル(F) → 新規(N) → プロジェクト(P)

2)Android の Android プロジェクト を選択し、[次へ(N)]ボタン をクリック
・プロジェクト名に 「 Image 」 を入力
・ビルド・ターゲットの □ Android 2.2 を チェック (最新のバージョン)
・アプリケーション名に 「 Image 」 を入力
・パッケージ名に 「 任意のドメイン名 」 を入力 (ドメイン名をパッケージ名に利用)
・□ Create Activityがチェック状態で、名称に 「 Image 」 を入力
・[完了]ボタン をクリック

3)Viewクラス 「 ImageView 」 を新規に作成します
・srcのパッケージ上で右クリック → 新規(W) → クラス
・名前(M)に 「 ImageView 」 を入力
・スーパークラス(S)に 「 android.view.View 」 を入力
・[完了]ボタン をクリック

4)画像(イメージ)を配置します
・resのフォルダー上で右クリック → 新規(W) → フォルダー


・フォルダー名(N)に 「 drawable 」 を入力
・[完了]ボタン をクリック


・作成した drawable のフォルダー上で右クリック → インポート


・一般 → ファイル・システム
・[次へ]ボタン をクリック


・次のディレクトリーから(Y)に画像(イメージ)があるフォルダーを指定 (参照ボタンで指定)
・取得する画像(イメージ)をチェック
・[完了]ボタン をクリック


(プロジェクトの構成)


5)生成された 「 ImageView 」 を書き換え
package com.proto.image;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Rect;
import android.view.View;

public class ImageView extends View {

// 画像(イメージ)
private Bitmap images;

// コンストラクタ
    public ImageView(Context context) {
        super(context);
        
        // 背景色の指定 (android.graphics.Colorの定義)
        setBackgroundColor(Color.WHITE);
        
        // 画像(イメージ)の指定
        Resources r=context.getResources();
        images=BitmapFactory.decodeResource(r,R.drawable.site_guide);   

    }

    // 画像(イメージ)の描画
    @Override 
    protected void onDraw(Canvas canvas) {
        
    // 画像(イメージ)の描画
        canvas.drawBitmap(images,0,0,null);
        
        // 画像(イメージ)の拡大縮小描画
        int w=images.getWidth();
        int h=images.getHeight();
        int rW, rH;
        Rect src=new Rect(0,0,w,h);
        rW=(int)(w*1.2);
        rH=(int)(h*1.2);
        Rect dst=new Rect(0,h+20,rW,h+20+rH);// 拡大
        canvas.drawBitmap(images,src,dst,null);
        rW=(int)(w*0.8);
        rH=(int)(h*0.8);
        dst=new Rect(0,h*2+50,rW,h*2+50+rH);// 縮小
        canvas.drawBitmap(images,src,dst,null);
    
    }

}


6)「 Image 」 を書き換え
package com.proto.image;

import android.app.Activity;
import android.os.Bundle;
//import android.view.Window;

public class Image extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        // ウィンドウタイトルの非表示
        // requestWindowFeature(Window.FEATURE_NO_TITLE);
        
        // setContentView(R.layout.main);    書き換え
        setContentView(new ImageView(this));
   }
}


・機能の説明
android.content.Context のContextクラスでリソースの指定

public abstract Resources getResources () 
android.graphics.BitmapFactory  のBitmapFactoryクラスで画像(イメージ)の指定

// 画像(イメージ)の指定(画像リソース,画像リソースID)
public static Bitmap decodeResource (Resources res, int id) 
   R.drawable.image-id  [/res/drawable フォルダーに入れた画像(イメージ)ファイル]
android.graphics.Canvas  のCanvasクラスで画像(イメージ)の描画

// 画像(イメージ)の描画(画像,左座標,上座標,描画インスタント)
public void drawBitmap (Bitmap bitmap, float left, float top, Paint paint) 

// 画像(イメージ)の拡大/縮小描画(画像,サブセット,拡大/縮小,描画インスタント)
public void drawBitmap (Bitmap bitmap, Rect src, Rect dst, Paint paint) 
android.graphics.Rect  のRectクラスでグラフィックスの位置指定(int)

// 位置の指定 (左位置,上位置,右位置,下位置)
public Rect (int left, int top, int right, int bottom) 


6)プロジェクトの実行(実行構成の作成は、「プロジェクトの新規作成」を参照)
・実行(R) → 実行(R)
(画像イメージを描画する)


Copyright (C) 2010 プログラミングのテクニックをあなたに!!(リトル・ヘルパー) All Rights Reserved.