Android Bitmapビットマップの使用
BitmapFactoryの使用 (Creates Bitmap objects from various sources, including files, streams, and byte-arrays.)
BitmapFactoryを使用すると、指定したファイルからdecodeFile()を使用してBitmapを解くことができます.定義されたピクチャリソースでは,decodeResource()を用いてBitmapを解くこともできる.ビットマップリソースをBitmapFactoryクラスdecodeStream(InputStreamis)を使用して復号し、ビットマップを取得します. BitmapFactoryクラスBitmap bmp=BitmapFactory.decodeResource(res,R.drawable.pic 180)を使用します.メソッドビットマップリソースを復号します.
Canvasクラスを使用したビットマップの表示
ビットマップをBitmapDrawableで表示
//ビットマップの取得 Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic180); //BitmapDrawableオブジェクトに変換 BitmapDrawable bmpDraw=new BitmapDrawable(bmp); //ビットマップを表示 ImageView iv2 = (ImageView)findViewById(R.id.ImageView02); iv2.setImageDrawable(bmpDraw);
BitMapクラス: public void recycle()——ビットマップが占有するメモリ空間を回収し、ビットマップをDeadと表記する public final boolean isRecycled()-ビットマップメモリが解放されたかどうかを判断 public final int getWidth()-ビットマップの幅を取得 public final int getHeight()-ビットマップの高さを取得 public final boolean isMutable()——画像が修正可能かどうか public int getScaledWidth(Canvas canvas):指定した密度変換後の画像の幅を取得する public int getScaledHeight(Canvas canvas):指定した密度変換後の画像の高さを取得する public boolean compress(CompressFormat,int quality,OutputStream stream)-指定したピクチャフォーマットおよび画質で、ピクチャを出力ストリームに変換します. format:Bitmap.CompressFormat.PNGまたはBitmap.CompressFormat.JPEG quality:画質、0-100.0は最低画質圧縮、100は最高画質圧縮を表します.PNGなどの非破壊フォーマットの画像では、この設定は無視されます. 一般的な静的メソッド: public static Bitmap createBitmap(Bitmap src)--srcを原図として可変の新しい画像を生成する public static Bitmap createScaledBitmap(Bitmap src, int dstWidth, int dstHeight,boolean filter)--srcを原図として、新しい画像を作成し、新しい画像のアスペクトと可変かどうかを指定します. public static Bitmap createBitmap(int width,int height,Config config)-指定したフォーマット、サイズのビットマップを作成します. public static Bitmap createBitmap(Bitmap source,int x,int y,int width,int height)sourceを原図として、新しいピクチャを作成し、開始座標と新しい画像の高さと幅を指定します. public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter) BitmapFactoryファクトリクラス: Optionパラメータクラス: public boolean inJustDecodeBounds--trueに設定すると、ピクチャは取得されず、メモリは割り当てられませんが、ピクチャの高さ幅情報が返されます. public int inSampleSize--画像のスケールの倍数.4に設定すると、幅と高さがともに元の1/4となり、図は元の1/16となる. public int outWidth——画像の幅値を取得する public int outHeight——画像の高さ値を取得する —————————————————————————————— public int indensity-ビットマップ用画素圧縮比 public int inTargetDesity:ターゲットビットマップの画素圧縮比(生成するビットマップ) public boolean inScale--trueに設定すると、inDesityからinTargetDesityまで画像圧縮が行われます. ファイルパスを読み込んでビットマップを取得します.指定したファイルが空であるか、ファイルに復号できない場合はNULLを返します. public static Bitmap decodeFile(String pathName, Options opts) public static Bitmap decodeFile(String pathName) リソースファイルを読み込んでビットマップを取得します.ビットマップデータが復号できない場合、またはoptsパラメータがサイズ情報のみを要求する場合、NuLLを返す. (つまり、Options.inJustDecodeBounds=trueの場合、ピクチャのサイズ情報のみが要求される.) public static Bitmap decodeResource(Resources res, int id) public static Bitmap decodeResource(Resources res, int id, Options opts) 入力ストリームからビットマップを復号する public static Bitmap decodeStream(InputStream is) バイト配列から復号化して可変ビットマップを生成する public static Bitmap decodeByteArray(byte[] data, int offset, int length) BitmapDrawableクラス:Drawableに継承され、ファイルパス、入力ストリーム、XMLファイル、Bitmapから作成できます. 一般的なコンストラクション関数: Resources res=getResources();//リソースの取得 public BitmapDrawable(Resources res)-空のdrawableを作成します.public BitmapDrawable()メソッドの代わりに(Responseが初期のピクセル密度を指定するために使用する) public BitmapDrawable(Resources res, Bitmap bitmap)——Create drawable from a bitmap public BitmapDrawable(Resources res, String filepath)——Create a drawable by opening a given file path and decoding the bitmap. public BitmapDrawable(Resources res, java.io.InputStream is)——Create a drawable by decoding a bitmap from the given input stream.
BitmapFactoryを使用すると、指定したファイルからdecodeFile()を使用してBitmapを解くことができます.定義されたピクチャリソースでは,decodeResource()を用いてBitmapを解くこともできる.ビットマップリソースをBitmapFactoryクラスdecodeStream(InputStreamis)を使用して復号し、ビットマップを取得します. BitmapFactoryクラスBitmap bmp=BitmapFactory.decodeResource(res,R.drawable.pic 180)を使用します.メソッドビットマップリソースを復号します.
Canvasクラスを使用したビットマップの表示
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new Panel(this));
}
class Panel extends View{
public Panel(Context context) {
super(context);
}
public void onDraw(Canvas canvas){
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pic180);
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(bmp, 10, 10, null);
}
}
}
ビットマップをBitmapDrawableで表示
//ビットマップの取得 Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic180); //BitmapDrawableオブジェクトに変換 BitmapDrawable bmpDraw=new BitmapDrawable(bmp); //ビットマップを表示 ImageView iv2 = (ImageView)findViewById(R.id.ImageView02); iv2.setImageDrawable(bmpDraw);
BitMapクラス: public void recycle()——ビットマップが占有するメモリ空間を回収し、ビットマップをDeadと表記する public final boolean isRecycled()-ビットマップメモリが解放されたかどうかを判断 public final int getWidth()-ビットマップの幅を取得 public final int getHeight()-ビットマップの高さを取得 public final boolean isMutable()——画像が修正可能かどうか public int getScaledWidth(Canvas canvas):指定した密度変換後の画像の幅を取得する public int getScaledHeight(Canvas canvas):指定した密度変換後の画像の高さを取得する public boolean compress(CompressFormat,int quality,OutputStream stream)-指定したピクチャフォーマットおよび画質で、ピクチャを出力ストリームに変換します. format:Bitmap.CompressFormat.PNGまたはBitmap.CompressFormat.JPEG quality:画質、0-100.0は最低画質圧縮、100は最高画質圧縮を表します.PNGなどの非破壊フォーマットの画像では、この設定は無視されます. 一般的な静的メソッド: public static Bitmap createBitmap(Bitmap src)--srcを原図として可変の新しい画像を生成する public static Bitmap createScaledBitmap(Bitmap src, int dstWidth, int dstHeight,boolean filter)--srcを原図として、新しい画像を作成し、新しい画像のアスペクトと可変かどうかを指定します. public static Bitmap createBitmap(int width,int height,Config config)-指定したフォーマット、サイズのビットマップを作成します. public static Bitmap createBitmap(Bitmap source,int x,int y,int width,int height)sourceを原図として、新しいピクチャを作成し、開始座標と新しい画像の高さと幅を指定します. public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter) BitmapFactoryファクトリクラス: Optionパラメータクラス: public boolean inJustDecodeBounds--trueに設定すると、ピクチャは取得されず、メモリは割り当てられませんが、ピクチャの高さ幅情報が返されます. public int inSampleSize--画像のスケールの倍数.4に設定すると、幅と高さがともに元の1/4となり、図は元の1/16となる. public int outWidth——画像の幅値を取得する public int outHeight——画像の高さ値を取得する —————————————————————————————— public int indensity-ビットマップ用画素圧縮比 public int inTargetDesity:ターゲットビットマップの画素圧縮比(生成するビットマップ) public boolean inScale--trueに設定すると、inDesityからinTargetDesityまで画像圧縮が行われます. ファイルパスを読み込んでビットマップを取得します.指定したファイルが空であるか、ファイルに復号できない場合はNULLを返します. public static Bitmap decodeFile(String pathName, Options opts) public static Bitmap decodeFile(String pathName) リソースファイルを読み込んでビットマップを取得します.ビットマップデータが復号できない場合、またはoptsパラメータがサイズ情報のみを要求する場合、NuLLを返す. (つまり、Options.inJustDecodeBounds=trueの場合、ピクチャのサイズ情報のみが要求される.) public static Bitmap decodeResource(Resources res, int id) public static Bitmap decodeResource(Resources res, int id, Options opts) 入力ストリームからビットマップを復号する public static Bitmap decodeStream(InputStream is) バイト配列から復号化して可変ビットマップを生成する public static Bitmap decodeByteArray(byte[] data, int offset, int length) BitmapDrawableクラス:Drawableに継承され、ファイルパス、入力ストリーム、XMLファイル、Bitmapから作成できます. 一般的なコンストラクション関数: Resources res=getResources();//リソースの取得 public BitmapDrawable(Resources res)-空のdrawableを作成します.public BitmapDrawable()メソッドの代わりに(Responseが初期のピクセル密度を指定するために使用する) public BitmapDrawable(Resources res, Bitmap bitmap)——Create drawable from a bitmap public BitmapDrawable(Resources res, String filepath)——Create a drawable by opening a given file path and decoding the bitmap. public BitmapDrawable(Resources res, java.io.InputStream is)——Create a drawable by decoding a bitmap from the given input stream.