Android学习(21)Bitmap_位图
Bitmap:位图
Bitmap是Android系统中的图像处理最重要的类之一,用它可以获取到图像文件信息,进行剪切、旋转、缩放等操作。
使用Bitmap在View中引入图片
1.创建一个BitmapView.java进行绘制
public class BitmapView extends SurfaceView implements SurfaceHolder.Callback {
//声明Bitmap对象
private Bitmap bitmap;
private BitmapDrawable bitmapDrawable;
//声明Bitmap的宽和高
private int BitmapWidth = 0;
private int BitmapHeight = 0;
public BitmapView(Context context) {
super(context);
//引入图片资源
bitmapDrawable = (BitmapDrawable) getResources().getDrawable(R.drawable.kcbb);
//通过getrBitmap方法转换为Bitmap类型
bitmap = bitmapDrawable.getBitmap();
//获得图片的宽和高
BitmapWidth = bitmap.getWidth();
BitmapHeight = bitmap.getHeight();
//添加一个回调函数
getHolder().addCallback(this);
}
public void draw() {
//锁定画布
Canvas canvas = getHolder().lockCanvas();
canvas.drawColor(0xffffffff);
//第一种:使用Bitmap直接绘制
// bitmapDrawable.setBounds(0,0,BitmapWidth,BitmapHeight);
// bitmapDrawable.draw(canvas);
//第二种:使用Canvas绘制Bitmap
//canvas.drawBitmap(bitmap,250,0,null);
//第三种(推荐):将原图绘制到指定的矩形区域中
//矩形区域大小
Rect rect = new Rect(0,0,BitmapWidth,BitmapHeight);
//图片大小
RectF rectF = new RectF(0,0,BitmapWidth,BitmapHeight);
canvas.drawBitmap(bitmap,rect,rectF,null);
//解锁画布
getHolder().unlockCanvasAndPost(canvas);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
}
//调用draw()方法
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
draw();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
}
2.在Activity中引入
public class BitmapActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new BitmapView(this));
}
}
声明:
1.知识点来源于《网易云课堂》——《Android基础视频教程》
2.本文只用于本人自身学习记录,如有侵权,请立即通知本人更改或删除