android画图之Bitmap

本文介绍了Android中Bitmap的操作,包括从资源、SD卡和网络加载Bitmap,如何旋转Bitmap以及如何处理内存问题。通过BitmapFactory、Matrix和Canvas进行图片处理,并讨论了Bitmap的内存管理和回收,防止OutOfMemoryError。
摘要由CSDN通过智能技术生成

一、相关概念

1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象
2、Canvas画布,绘图的目的区域,用于绘图
3、Bitmap位图,用于图的处理
4、Matrix矩阵
5、paint画笔


获取Bitmap的方法:

一、 使用BitmapFactory解析图片


// --> 使用BitmapFactory解析图片

public void myUseBitmapFactory(Canvas canvas){

// 定义画笔

Paint paint = new Paint();

// 获取资源流

Resources rec = getResources();

InputStream in = rec.openRawResource(R.drawable.haha);

// 设置图片

Bitmap bitmap =BitmapFactory.decodeStream(in);

// 绘制图片

canvas.drawBitmap(bitmap, 0,20, paint);

}

二、 使用BitmapDrawable解析图片


// --> 使用BitmapDrawable解析图片

public void myUseBitmapDrawable(Canvas canvas){

// 定义画笔

Paint paint = new Paint();

// 获得资源

Resources rec = getResources();

// BitmapDrawable

BitmapDrawable bitmapDrawable = (BitmapDrawable) rec.getDrawable(R.drawable.haha);

// 得到Bitmap

Bitmap bitmap = bitmapDrawable.getBitmap();

// 在画板上绘制图片

canvas.drawBitmap(bitmap, 20,120,paint);

}


三、 使用InputStream和BitmapDrawable绘制

// --> 使用InputStream和BitmapDrawable解析图片

public void myUseInputStreamandBitmapDrawable(Canvas canvas){

// 定义画笔

Paint paint = new Paint();

// 获得资源

Resources rec = getResources();

// InputStream得到资源流

InputStream in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值