Android高级进阶Android开发经验谈Android知识

Bitmap--学习笔记

2016-03-16  本文已影响120人  Kevin_Curry

Bitmap是Android系统中的图像处理的最重要类之一。

用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件

Bitmap类的构造函数是私有的,外面并不能实例化,只能是通过JNI实例化

BitmapFactory通过实现了JNI接口来实例化bitmap

为了防止图片OOM,它还提供了Options这个参数

public boolean compress(Bitmap.CompressFormat format, int quality,OutputStream stream)压缩:

将位图的压缩到指定的OutputStream。如果返回true,位图可以通过传递一个相应的InputStream BitmapFactory.decodeStream(重建)。
format: 压缩图像的格式

quality: 0-100。 0含义压缩为小尺寸,100压缩的意思为最大质量。(PNG是无损的,会忽略品质设定 )

stream: OutputStream中写入压缩数据。

return: 是否成功压缩到指定的流。

------------------------------------------------------------------------------------------------------------------------------------------

public void recycle()——回收位图占用的内存空间,把位图标记为Dead

public final boolean isRecycled() ——判断位图内存是否已释放

public final int getWidth()——获取位图的宽度

public final int getHeight()——获取位图的高度

public final boolean isMutable()——图片是否可修改

public int getScaledWidth(Canvas canvas)——获取指定密度转换后的图像的宽度

public int getScaledHeight(Canvas canvas)——获取指定密度转换后的图像的高度

public boolean compress(CompressFormat format, int quality, OutputStreamstream)——按指定的图片格式以及画质,将图片转换为输出流。

BitmapFactory工厂类:

public boolean inJustDecodeBounds——如果设置为true,不获取图片,不分配内存,但会返回图片的高宽度信息。

public int inSampleSize——图片缩放的倍数。如果设为4,则宽和高都为原来的1/4,则图是原来的1/16。

public int outWidth——获取图片的宽度值

public int outHeight——获取图片的高度值

public int inDensity——用于位图的像素压缩比

public int inTargetDensity——用于目标位图的像素压缩比(要生成的位图)

public boolean inScaled——设置为true时进行图片压缩,从inDensity到inTargetDensity。

上一篇下一篇

猜你喜欢

热点阅读