java.lang.Object ↳ android.graphics.Bitmapを使用します
また外部ファイルやリソースを読み込むために
java.lang.Object ↳ android.graphics.BitmapFactoryを使用します
例えば drawable に入れてあるリソースを Bitmap として使うには
BitmapFactory クラスで変換して利用する
その後 Bitmap クラスを用いて大きさを変換させたり
回転させたり...
というわけで、Bitmap をいじってみた
サンプルプログラム
- import android.app.Activity;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.Matrix;
- import android.graphics.Paint;
- import android.os.Bundle;
- import android.view.View;
- public class BitmapTest extends Activity {
- private static final int NUM = 4;
- Bitmap bitmap[];
- Matrix matrix;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(new BitmapTestView(this));
- }
- class BitmapTestView extends View {
- public BitmapTestView(Context context) {
- super(context);
- bitmap = new Bitmap[NUM];
- // リソースから Bitmap を取得
- bitmap[0] = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
- // Bitmap のサイズの取得
- int width = bitmap[0].getWidth();
- int height = bitmap[0].getHeight();
- // 45°回転させた Bitmap を作成
- matrix = new Matrix();
- matrix.postRotate(45.0f); // 回転させる角度を指定
- bitmap[1] = Bitmap.createBitmap(bitmap[0], 0, 0, width, height, matrix, true);
- // Bitmap のスケールを指定して作成
- // この場合 (x * 0.5) × (y * 2) の大きさの画像になる
- matrix = new Matrix();
- matrix.postScale(0.5f, 2.0f); // スケールを指定
- bitmap[2] = Bitmap.createBitmap(bitmap[0], 0, 0, width, height, matrix, true);
- // Bitmap の大きさを指定して作成
- // この場合 80 × 48 の大きさの画像になる
- bitmap[3] = Bitmap.createScaledBitmap(bitmap[0], 80, 48, true);
- }
- @Override
- public void onDraw(Canvas canvas) {
- Paint paint = new Paint();
- for (int i = 0; i < NUM; i++) {
- // Bitmap の描画
- canvas.drawBitmap(bitmap[i], i * 80, 0, paint);
- }
- }
- }
- }
プログラムを実行すると...
こんな感じ!
ちなみに 引数の filter の部分(最後の引数)の値を変えて比較してみると...
こんな感じに! (左:true, 右:false)
filter をかけるとアンチエイリアスがかかっているっぽい
参考サイト
http://developer.android.com/intl/ja/reference/android/graphics/Bitmap.html
http://developer.android.com/intl/ja/reference/android/graphics/BitmapFactory.html
0 件のコメント:
コメントを投稿