一、Bitmap介绍
Bitmap是一个用来存储图像每个像素颜色信息的对象。通过它可以获取图像文件信息,进行图像颜色变换、剪切、旋转、缩放等操作,并可以指定格式保存图像文件。主要用于 ImageView 设置背景或当作 Canvas 画布使用。
在Android开发中,任何一个APP都离不开图片的加载和显示问题。这里的图片来源分为三种:项目图片资源文件(一般为res/drawable目录下的图片文件)、手机本地图片文件、网络图片资源等。图片的显示我们一般采用ImageView作为载体,通过ImageView的相应API即可设置其显示的图片内容。
Bitmap和Drawable
Bitmap和Drawable是Android中常用的图像处理类。
Bitmap是Android中表示位图图像的类,它可以直接操作像素数据。可以通过BitmapFactory类的decodeResource()方法将Drawable资源转换为Bitmap对象。
Drawable是Android中表示可绘制图像的抽象类,它可以是位图(Bitmap)、矢量图(VectorDrawable)或其他类型的图像。Drawable对象可以直接用于绘制到屏幕上,也可以转换为Bitmap对象进行进一步处理。
二、Bitmap相关类
JAVA类
Bitmap
Bitmap类是Android中用于表示位图图像的类。它提供了许多方法来操作和处理位图图像。
Bitmap文件路径:
frameworks/base/graphics/java/android/graphic/Bitmap.java
Bitmap定义:
public final class Bitmap implements Parcelable {}
BitmapFactory
BitmapFactory是Android中用于解析Bitmap的类。它提供了多个静态工厂方法,用于从不同的数据源解析Bitmap,如文件、资源、字节数组、流和文件描述符。
BitmapFactory文件路径:
frameworks/base/graphics/java/android/graphic/BitmapFactory.java
BitmapFactory定义:
public class BitmapFactory {}
C++类
Bitmap
Bitmap文件路径:
frameworks/base/libs/hwui/Bitmap.cpp
frameworks/base/libs/hwui/jni/Bitmap.cpp
frameworks/base/libs/hwui/Bitmap.h
frameworks/base/libs/hwui/jni/Bitmap.h
Bitmap定义:
class Bitmap : public SkPixelRef {}
class BitmapWrapper {}
class LocalScopedBitmap {}