2011年3月6日日曜日

Androidその12 ~イメージの描画2~

どうも、69です。


早速、前回 イメージの描画 の解説です。
では↓


*****ImageView.java**********************************

//フィールド変数image・imagesの定義
private Bitmap image,images;→ImageExのコンストラクタとonDraw()メソッドの両方からアクセス可能

//コンストラクタの定義
public ImageView(Context context){
super(context);
setBackgroundColor(Color.WHITE);→背景色指定

//画像の読み込み
Resources r=context.getResources();→リソースオブジェクトの取得
image=BitmapFactory.decodeResource(
r,R.drawable.android);→変数imageにandroid.pngを代入
images=BitmapFactory.decodeResource(
r,R.drawable.king);
}

//描画
@Override
protected void onDraw(Canvas canvas){

//イメージの描画
canvas.drawBitmap(image, 100,0,null);→imageの描画
canvas.drawBitmap(images,-100,0,null);→imagesの描画

//イメージの拡大
int w=image.getWidth();→imageの幅取得
int h=image.getHeight();→imageの高さ取得
Rect src=new Rect(0,0,w,h);→Rectクラスからsrcオブジェクトの生成(描画元領域)
Rect dst=new Rect(0,200,w*2,200+h*2);→dstオブジェクトの生成(描画先領域)
canvas.drawBitmap(image, src,dst, null);→imageの拡大描画

****************************************************

*****主に使用したクラス**********************************

import android.content.res.Resources;
Resources getResources()→リソースオブジェクトの取得(画像の読み込みに使用)
import android.graphics.Bitmap;
image,imagesの型
import android.graphics.BitmapFactory;
static Bitmap decodeRecource(Recource resources,int resID)→リソースの画像ファイルの読み込み。引数:リソースオブジェクト,リソースID。戻り値:Bitmapオブジェクト。リソースIDは[res/drawable]に配置したファイルを[R.drawable.ファイル名(拡張子なし)]で指定
import android.graphics.Canvas;
void drawBitmap(Bitmap bitmap,int X,int Y,Paint paint)→イメージの描画。引数:ビットマップオブジェクト,X座標,Y座標,描画オブジェクト(nullでもいい)。座標はイメージ左上。
void drawBitmap(Bitmap bitmap,Rect src,Rect dst,Paint paint)→描画領域を指定して描画。引数:ビットマップオブジェクト,描画元領域の矩形,描画先領域の矩形,描画オブジェクト。
import android.graphics.Rect;
Rect(int left,int top,int right.int bottom)→描画領域の指定

****************************************************

です。
staticが付いているものは

オブジェクトではなく、
クラスで保持するフィールド変数やメソッドで、
全オブジェクト共通で使いたいときに使用します。
staticなし→インスタンスフィールド・メソッド
staticあり→スタティックフィールド・メソッドといいます。


フィールド変数は

オブジェクトの持つ変数で
オブジェクトが解放されるまで保持し続けます。
書式は

アクセス修飾子 変数の型 変数名;
private Bitmap image;



てな、感じです。
画像は、画像の一部を指定して部分表示もできるそうな。

おしまい。

0 件のコメント:

コメントを投稿