在类Bitmap中有如下8个最为常用的方法。
(1)boolean compress(Bitmap.CompressFormat format,int quality,OutputStream stream):压缩一个Bitmap对象,根据相关的编码、画质保存到一个OutputStream中。其中,第一个压缩格式目前有JPG和PNG两种。
(2)void copyPixelsFromBuffer(Buffer src):从一个Buffer缓冲区复制位图像素。
(3)void copyPixelsToBuffer(Buffer dst):将当前位图像素内容复制到一个Buffer缓冲区
(4)final int getHeight():获取高度。
(5)final int getWidth():获取宽度。
(6)final boolean hasAlpha():是否有透明通道。
(7)void setPixel(int x,int y,int color):设置某像素的颜色。
(8)int getPixel(int x,int y):获取某像素的颜色。
1.从资源中获取位图
可以使用BitmapDrawable或者BitmapFactory来获取资源中的位图。首先需要获取资源代码如下。
1)使用BitmapDrawable获取位图的基本流程如下。
第一步:使用BitmapDrawable(InputStream is)构造一个BitmapDrawable
第二步:使用BitmapDrawable类的getBitmap()获取得到位图。
例如通过下面的代码读取InputStream并得到位图。(www.xing528.com)
也可以采用下面的方式
2)使用BitmapFactory获取位图
使用BitmapFactory类decodeStream(InputStream is)解码位图资源,然后获取位图
BitmapFactory的所有函数都是静态的,这个辅助类可以通过资源ID、路径、文件、数据流等方式来获取位图。
以上方法在编程的时候读者可以自由选择,在Android SDK中可以支持的图片格式如下:png(preferred),jpg(acceptable),gif(discouraged),和bmp(Android SDK Support Media Format)。
2.获取位图的信息
要获取位图信息,比如位图大小、像素、density、透明度、颜色格式等,获取得到Bitmap就迎刃而解了,这些信息在Bitmap的手册中,这里只是辅助说明以下2点。
(1)在Bitmap中对RGB颜色格式使用Bitmap.Config定义,仅包括ALPHA_8、ARGB_ 4444、ARGB_8888、RGB_565,缺少了一些其他的内容,比如说RGB_555,在开发中可能需要注意这个问题。
(2)Bitmap还提供了compress()接口来压缩图片,不过AndroidSAK只支持PNG、JPG格式的压缩;其他格式的压缩方法需要Android开发人员自己补充。
3.显示位图
可以使用核心类Canvas来显示位图,通过Canvas类的drawBirmap()显示位图,或者借助于BitmapDrawable来将Bitmap绘制到Canvas。当然,也可以通过BitmapDrawable将位图显示到View中。方法如下。
(1)转换为BitmapDrawable对象显示位图,例如下面的代码。
(2)使用Canvas类显示位图
在此可以采用一个继承自View的子类Panel,在子类的OnDraw中显示,具体代码如下。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。