开发应用过程中图片的使用是必不可少的,在Android中除了使用Drawable资源中的图片,我们还可以使用Bitmap,Picture类等创建图片。
Bitmap
Bitmap代表一张位图。Bitmap能能够直接创建,要通过Bitmap.Factory来创建Bitmap的对象。
Bitmap.Factory中为我们提供了多个方法来获得Bitmap的对象:
- decodeByteArray(byte[] data, int offset, int length)
将制定字节数组从offset字节开始length长度的字节解析成Bitmap对象。
- decodeFile(String pathName)
将指定路径下的文件解析成Bitmap对象。
- decodeFileDescriptor(FileDescriptor fd)
将FileDescriptor对应文件中解析,创建Bitmap对象。
- decodeResource(Resources res, int id)
将给定的资源ID解析成Bitmap对象。
decodeStream(InputStream is)
将指定的字节流解析成Bitmap对象。
除此之外Bitmap还提供了一些静态的方法创建Bitmap对象:createBitmap(Bitmap source, int x, int y, int width, int height)
从源位图的指定坐标(x, y)开始,挖取宽度为width,高度为height的图像创建Bitmap对象。
- createScaledBitmap(Bitmap src, int dstWidth, int dstHeight, boolean filter)
将源位图缩放成宽度为dstWidth,高度为dstHeight的Bitmap的对象。
- createBitmap(Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)
从源位图的(x, y)坐标开始,挖取宽度为width,高度为height的图像并按照Matrix的规定设置为型的Bitmap对象。
Bitmap与BiamapDrawable
BitmapDrawable中封装的就是一个Bitmap对象:
BitmapDrawable drawable = new BitmapDrawable (bitmap);
通过调用BitmapDrawable的getBitmap()方法获得BitmapDrawable中封装的Bitmap对象。
Bitmap bitmap= drawable.getBitmap();