Bitmap和BitmapFactory的简单使用(9.17)

更多细节参照:

Bitmap

Bitmp代表一张位图,BitmapDrawable里封装的图片就是一张Bitmap对象

简单代码示例package com.test.mypathview;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;import android.util.AttributeSet;import android.util.Log;import android.view.View;{private Bitmap mBitmap;private Paint mPaint;public MyBitMap(Context context, AttributeSet attrs) {super(context, attrs);mPaint=new Paint();mBitmap=BitmapFactory.decodeResource(getResources(), R.drawable.d);Log.d(“aa”, mBitmap.getWidth()+”高”+mBitmap.getHeight());}public MyBitMap(Context context) {super(context);// TODO Auto-generated constructor stub}(int widthMeasureSpec, int heightMeasureSpec) {// TODO Auto-generated method stubsuper.onMeasure(widthMeasureSpec, heightMeasureSpec);setMeasuredDimension(getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec),getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec));}(Canvas canvas) {super.onDraw(canvas);canvas.drawBitmap(mBitmap, 0,0, mPaint);}}对图片的各种操作package com.test.mypathview;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.util.AttributeSet;import android.util.Log;import android.view.View;{private Bitmap mBitmap;private Paint mPaint;private Matrix mMatrix;private int mHeight;private int mWidth;private int mBitmapWidth;private int mBitmapHeight;public MyBitMap(Context context, AttributeSet attrs) {super(context, attrs);mPaint=new Paint();mMatrix=new Matrix();mBitmap=BitmapFactory.decodeResource(getResources(), R.drawable.d);Log.d(“aa”, mBitmap.getWidth()+”高”+mBitmap.getHeight());mBitmapWidth=mBitmap.getWidth();mBitmapHeight=mBitmap.getHeight();}public MyBitMap(Context context) {super(context);// TODO Auto-generated constructor stub}(int widthMeasureSpec, int heightMeasureSpec) {// TODO Auto-generated method stubsuper.onMeasure(widthMeasureSpec, heightMeasureSpec);mWidth=getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);mHeight=getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);}(Canvas canvas) {super.onDraw(canvas);//canvas.drawBitmap(mBitmap, 0,0, mPaint);//放大mMatrix.reset();mMatrix.postScale(2, 2);canvas.drawBitmap(mBitmap, mMatrix, mPaint);mMatrix.reset();canvas.drawBitmap(mBitmap, mMatrix, mPaint);//平移mMatrix.reset();mMatrix.postTranslate(0, 2*mBitmapHeight);canvas.drawBitmap(mBitmap, mMatrix, mPaint);//旋转平移mMatrix.reset();mMatrix.preRotate(180);mMatrix.postTranslate(mBitmapWidth*2, mBitmapHeight*3);canvas.drawBitmap(mBitmap, mMatrix, mPaint);//拉伸,,面积不变mMatrix.reset();mMatrix.setSkew(0, 1);canvas.drawBitmap(mBitmap, mMatrix, mPaint);//沿x轴翻转mMatrix.reset();float matrix_values[] = {1f, 0f, 0f, 0f, -1f, 0f, 0f, 0f, 1f};mMatrix.setValues(matrix_values);mMatrix.postTranslate(0, mBitmapHeight*2);canvas.drawBitmap(mBitmap, mMatrix, mPaint);//沿y轴翻转mMatrix.reset();float matrix_values2[] = {-1f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 1f};mMatrix.setValues(matrix_values2);mMatrix.postTranslate(mBitmapWidth*2, 0);canvas.drawBitmap(mBitmap, mMatrix, mPaint);//测试用mMatrix.reset();float matrix_values3[] = {0f, 0.5f,0.5f, -1f, 0f, 0.5f, 0.5f, -1f, 0f};mMatrix.setValues(matrix_values2);mMatrix.postTranslate(mBitmapWidth*3, mBitmapHeight*4);canvas.drawBitmap(mBitmap, mMatrix, mPaint);}}效果图有理想在的地方,地狱就是天堂

Bitmap和BitmapFactory的简单使用(9.17)

相关文章:

你感兴趣的文章:

标签云: