首页 理论教育 Android游戏开发-Bitmap类功能总结

Android游戏开发-Bitmap类功能总结

时间:2023-10-22 理论教育 版权反馈
【摘要】:在类Bitmap中有如下8个最为常用的方法。1)使用BitmapDrawable获取位图的基本流程如下。转换为BitmapDrawable对象显示位图,例如下面的代码。

Android游戏开发-Bitmap类功能总结

在类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中显示,具体代码如下。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈