前面我们提到过canvas相当于画家,而bitmap相当于画布,前面博客的例子都是直接利用canvas绘制,这里我们来学习一下,利用bitmap先将图形绘制好,然后一起放到最终的canvas中^^。
位图概念:Bitmap可以获得图像文件的信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。但bitmap是将图片信息全部存入内存,容易印发OutOfMemory(内存溢出)的错误。
先来看一下bitmap的实例获得,这里是其中一种方式,通过已有的图片来获得它的位图,以后我们再讲解如何创建一个空白地方位图。
一.实例化:
注:存入一张照片时,mipmap中不能有大写字母,不能有数字。
BitmapDrawable:
BitmapDrawable中封装的图片就是一个Bitmap对象。
BitmapDrawable drawable = new BitmapDrawale(bitmap);//封装
Bitmap bitmap = drawable.getBitmap();//获取到Drawable中的bitmap
创建新的Bitmap:
- Bitmap提供:
createBitmap();
createScaleBitmap();进行缩放后的bitmap
- BitmapFactory工具类提供:
decodeByteArray();//从指定字节数组
decodeFile();//从指定文件
decodeFileDescriptor();//从FileDescriptor对应的文件
decodeResource();//从给定的资源ID
decodeStream();//从指定的输入流
例:
bitmap= BitmapFactory.decodeResource(getResources(),R.mipmap.j);//实例化