【AndroidのCanvasに向き合おう】 行列で変形する

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

Canvasを行列で変形する

Matrixを使ってCanvasを変形できます、前回紹介したメソッド群はこの機能を使いやすくラッピングしたものです。
行列操作
void setMatrix(Matrix matrix) 現在、Canvasに設定されているMatrixを完全に入れ替える。
void concat(Matrix matrix) 現在、Canvasに設定されているMatrixに前側から掛け算を行う。
Matrix getMatrix() 現在、Canvasに設定されているMatrixを取得する。
API level 16で非推奨になりました。
void getMatrix(Matrix ctm) 現在、Canvasに設定されているMatrixを私たMatrixに設定する。
API level 16で非推奨になりました。

public class MyCanvasMatrix extends View {
    public MyCanvasMatrix(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        //描画に使用するBitmapを読み込む
        Bitmap icLauncherBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
        int right = canvas.getWidth() - icLauncherBitmap.getWidth();
        int bottom = canvas.getHeight() - icLauncherBitmap.getHeight();
        Matrix matrix = new Matrix();
        matrix.setTranslate(50,50);
        canvas.setMatrix(matrix);
        Matrix rote = new Matrix();
        rote.postRotate(15, right / 2 , bottom / 2);
        canvas.concat(rote);
        Matrix matrix1 = canvas.getMatrix();
        Toast.makeText(getContext() , matrix1.toString(), Toast.LENGTH_LONG).show();
        /** 左上に画像を表示する。*/
        canvas.drawBitmap(icLauncherBitmap,0,0, null);
        /** 右上に画像を表示する。*/
        canvas.drawBitmap(icLauncherBitmap , right,0, null);
        /** 左下に画像を表示する。*/
        canvas.drawBitmap(icLauncherBitmap,0, bottom, null);
        /** 右下に画像を表示する。*/
        canvas.drawBitmap(icLauncherBitmap,right,bottom, null);
        /** 中心に画像を表示する。 */
        canvas.drawBitmap(icLauncherBitmap,right/2,bottom/2, null);
    }
}

Androidゲームプログラミング A to Z

新品価格
¥4,968から
(2017/2/27 22:58時点)


AndroidエンジニアのためのモダンJava

新品価格
¥3,456から
(2017/2/27 23:01時点)


AndroidNDKネイティブプログラミング第2版

中古価格
¥1,893から
(2017/2/28 00:04時点)


Androidアプリ開発逆引きレシピ (PROGRAMMER’S RECiPE)

新品価格
¥3,024から
(2017/2/28 00:06時点)


Android Studio ではじめる Android プログラミング入門 第3版 Android Studio 2対応

新品価格
¥3,240から
(2017/2/28 00:11時点)


アプリを作ろう! Android入門 Android Studio版 Android5対応

新品価格
¥2,160から
(2017/2/28 00:31時点)


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)