使用BitmapFactory (Creates Bitmap objects from various sources, including files, streams, and byte-arrays.)
利用BitmapFactory可以从一个指定文件中,利用decodeFile()解出Bitmap;也可以定义的图片资源中,利用decodeResource()解出Bitmap。
使用BitmapFactory类decodeStream(InputStream is)解码位图资源,获取位图。
使用BitmapFactory类Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic180); 方法解码位图资源。
使用Canvas类显示位图
public class Main extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new Panel(this)); } class Panel extends View{ public Panel(Context context) { super(context); } public void onDraw(Canvas canvas){ Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pic180); canvas.drawColor(Color.BLACK); canvas.drawBitmap(bmp, 10, 10, null); } } }
通过BitmapDrawable显示位图
// 获取位图
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic180);
// 转换为BitmapDrawable对象
BitmapDrawable bmpDraw=new BitmapDrawable(bmp);
// 显示位图
ImageView iv2 = (ImageView)findViewById(R.id.ImageView02);
iv2.setImageDrawable(bmpDraw);
BitMap类:
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, OutputStream stream)——按指定的图片格式以及画质,将图片转换为输出流。
format:Bitmap.CompressFormat.PNG或Bitmap.CompressFormat.JPEG
quality:画质,0-100.0表示最低画质压缩,100以最高画质压缩。对于PNG等无损格式的图片,会忽略此项设置。
常用的静态方法:
public static Bitmap createBitmap(Bitmap src) ——以src为原图生成不可变得新图像
public static Bitmap createScaledBitmap(Bitmap src, int dstWidth,
int dstHeight, boolean filter)——以src为原图,创建新的图像,指定新图像的高宽以及是否可变。
public static Bitmap createBitmap(int width, int height, Config config)——创建指定格式、大小的位图
public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height)以source为原图,创建新的图片,指定起始坐标以及新图像的高宽。
public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height,
Matrix m, boolean filter)
BitmapFactory工厂类:
Option 参数类:
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。
读取一个文件路径得到一个位图。如果指定文件为空或者不能解码成文件,则返回NULL。
public static Bitmap decodeFile(String pathName, Options opts)
public static Bitmap decodeFile(String pathName)
读取一个资源文件得到一个位图。如果位图数据不能被解码,或者opts参数只请求大小信息时,则返回NuLL。
(即当Options.inJustDecodeBounds=true,只请求图片的大小信息。)
public static Bitmap decodeResource(Resources res, int id)
public static Bitmap decodeResource(Resources res, int id, Options opts)
从输入流中解码位图
public static Bitmap decodeStream(InputStream is)
从字节数组中解码生成不可变的位图
public static Bitmap decodeByteArray(byte[] data, int offset, int length)
BitmapDrawable类:继承于Drawable,你可以从文件路径、输入流、XML文件以及Bitmap中创建。
常用的构造函数:
Resources res=getResources();//获取资源
public BitmapDrawable(Resources res)——创建一个空的drawable。(Response用来指定初始时所用的像素密度)替代public BitmapDrawable()方法(此方法不处理像素密度)
public BitmapDrawable(Resources res, Bitmap bitmap)——Create drawable from a bitmap
public BitmapDrawable(Resources res, String filepath)——Create a drawable by opening a given file path and decoding the bitmap.
public BitmapDrawable(Resources res, java.io.InputStream is)——Create a drawable by decoding a bitmap from the given input stream.
相关推荐
本资料“Android Bitmap位图渲染与操作源码”可能包含了关于如何高效地加载、显示、操作及优化Bitmap的源代码示例。 1. **Bitmap的创建** Android提供了多种方式创建Bitmap,如通过资源ID (`BitmapFactory....
这份"安卓Android源码——(Bitmap位图渲染与操作)"的资料,很可能是深入讲解如何在Android系统中有效地管理和操作位图资源的教程或示例代码集合。 1. **Bitmap基本概念**: Bitmap对象是Android中的一个核心类,它...
在Android应用开发中,Bitmap是用于处理图像的基本类,它代表了一个位图图像。位图渲染与操作是Android图形处理的重要部分,对于优化性能、创建动态效果和自定义UI至关重要。以下将详细讨论Bitmap的使用、渲染过程...
Bitmap位图是Android系统中广泛使用的图像处理类,主要用于显示和操作像素级别的图像数据。在Android开发中,我们经常会遇到需要对Bitmap进行各种操作的情况,其中旋转Bitmap就是一种常见的需求,比如用户拍摄照片后...
综上所述,Bitmap位图资源在Android开发中扮演着重要角色,理解和掌握Bitmap的使用、优化以及相关操作,对于提升应用的性能和用户体验至关重要。在实际项目中,需要根据具体需求灵活运用上述知识点,以实现高效、...
Bitmap位图缩放是图像处理中的常见操作,广泛应用于各种应用程序和系统中,例如手机壁纸适配、游戏画面渲染、图像编辑软件等。在Android开发中,Bitmap对象是用于存储和处理像素数据的核心类,而缩放Bitmap是优化...
本篇文章将详细介绍如何在Android中实现Bitmap位图的旋转效果。 首先,我们要知道Android提供了两种主要的方式来实现Bitmap的旋转:使用`Matrix`类和使用`Canvas`。在这篇描述中,我们将重点讨论使用`Matrix`的方法...
Bitmap位图渲染与操作在Android应用开发中是至关重要的部分,尤其对于图形界面设计和游戏开发。本项目是一个Android应用源码示例,适合毕业生进行毕业设计学习,它深入探讨了如何在Android平台上处理和操作Bitmap...
- **内存缓存**:使用LRUCache(Least Recently Used Cache)或Android提供的WeakReference实现,存储最近使用的Bitmap。当内存不足时,最不常使用的图片会被自动移除。 - **磁盘缓存**:将Bitmap保存到外部存储,...
Android不支持将Bitmap转换成单色的Bmp图片,所以参考Bmp格式说明,自己写了一个转换类。亲测有效!!!
在Android开发中,Bitmap是处理图像的基本类,用于在内存中表示位图图像。当我们需要对图片进行裁剪、缩放或进行其他操作时,Bitmap提供了丰富的功能。本篇文章将详细探讨如何在Android环境下利用Bitmap来切割图片。...
BMP(Bitmap File Format)是一种常见的位图文件格式,但它并不像JPEG或PNG那样被Android SDK直接支持。本文将详细介绍如何在Android中将Bitmap转换为BMP格式。 首先,Android SDK提供了`Bitmap.compress()`方法来...
在Android开发中,处理图像数据是一项常见的任务,而Bitmap和String是两个核心的数据类型,分别代表位图图像和文本字符串。Bitmap对象用于存储和显示图像,而String则常用于保存和传输文本信息。本篇文章将深入探讨...
Bitmap位图渲染与操作是Android UI开发中的重要环节,涉及到内存管理、性能优化以及用户体验等多个方面。本压缩包文件提供了关于Bitmap的源码示例,帮助开发者深入理解其工作原理并提升实际操作技巧。 1. **Bitmap...
位图(Bitmap)是Android开发中不可或缺的部分,它用于表示图像数据。Bitmap类是Android系统提供的用于处理图像的主要类,但需要注意的是,Bitmap对象本身并不直接创建,而是通过BitmapFactory类来解析并创建。...
Android基础软件源码(Bitmap位图渲染与操作).zip
在Android开发中,大位图(Bitmap)的处理是一个重要的技术点,特别是在处理高分辨率图像或者需要显示大量图片的应用中。由于Android系统对内存管理的限制,直接加载大位图可能导致应用崩溃,这就是著名的"Out of ...
Bitmap是Android平台中用于处理图像的核心类,它用于表示位图图像数据。下面是对Bitmap用法的详细总结: 1. **Drawable转换为Bitmap**: 当我们需要将一个Drawable对象(如从XML布局文件中加载的图像)转换为...
在Android开发中,有时我们需要将彩色的位图(Bitmap)转换为单色位图,以实现特定的效果,比如创建简单的二值化图像、节省内存或提高处理速度。本篇文章将详细探讨如何在Android中进行这种转换,从32位深图和24位深...
在Windows API中,实现透明位图的一种常见方法是使用位图对象(BITMAP)和位图信息头(BITMAPINFOHEADER)结构。我们需要创建一个带有额外Alpha通道的位图,这通常通过设置位图信息头的biBitCount字段为32,表示每个...