Androidの描画

by K.I
2016/07/14〜

Index


概要


[top]

Canvas

public void onDraw(Canvas canvas) {
        c.drawColor(Color.BLACK);

        Paint paint = new Paint();

        paint.setStyle(Paint.Style.FILL);
        paint.setColor(Color.BLUE);
        canvas.drawRect(500f, 500f, 1000f, 1000f, paint);

        fill_paint.setColor(Color.RED);
        canvas.drawOval(new RectF(0f, 0f, 500f, 500f), paint);
}

オフスクリーンの生成

Path描画

paint.setAntiAlias(true);
paint.setStrokeWidth(5);
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.argb(255, 255, 255, 255));

Path path = new Path();
path.moveTo(100, 100);
path.lineTo(500, 100);
path.lineTo(500, 500);
path.lineTo(100, 500);
path.lineTo(100, 100);

canvas.drawPath(path, paint);

各種図形の描画

Text描画

文字列の大きさを求める

Bitmapの描画


[top]

Bitmap

Bitmapのピクセルを直接操作

Bitmapの生成

Bitmap.Config 1ピクセルあたりの、byte数/定義内容
ARGB_8888 4byte/αチャネル(8bit)、R(8bit)、G(8bit)、B(8bit)
ARGB_4444 2byte/αチャネル(4bit)、R(4bit)、G(4bit)、B(4bit)
RGB_565 2byte/αチャネルなし、R(5bit)、G(6bit)、B(5bit)
ALPHA_8 1byte/αチャネル(8bit)のみ

リソースからBitmap読込み

Bitmapの保存

ViewからBitmapを取得

public Bitmap getViewBitmap(View view){
    view.setDrawingCacheEnabled(true);
    Bitmap cache = view.getDrawingCache();
    if(cache == null){
        return null;
    }
    Bitmap bitmap = Bitmap.createBitmap(cache);
    view.setDrawingCacheEnabled(false);
    return bitmap;
}

OpenGLでBitmapを生成


[top]

SurfaceView


[top] [プログラムの部屋に戻る]

comments powered by Disqus