从资源中获取位图的两种方法

本文介绍了在Android中获取位图资源的两种方法:一是通过Resources获取Drawable,再转换为Bitmap;二是直接使用BitmapFactory解码数据流。这两种方法在Android SDK中都得到了支持,适用的图片格式包括png、jpg和gif。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法(1):先获取Resource,然后可以通过资源ID获取Drawable,也可以通过资源ID获取资源文件的数据流Drawable是个抽象类,在BitmapDrawable中我们就看到位图的具体操作,在仔细看下BitmapDrawable的构造函数,我们就会发现与Resource中的openRawResource()接口是相对应的,就可以通过以下方法来获取位图:
  Resources r = this.getContext().getResources();
  Inputstream is = r.openRawResource(R.drawable.my_background_image);
  BitmapDrawable  bmpDraw = new BitmapDrawable(is);
  Bitmap bmp = bmpDraw.getBitmap();
  方法(2):通过Resource的函数:InputStream  openRawResource(int id)获取得到资源文件的数据流后,也可以通过2种方法来获取Bitmap,如下:
  使用BitmapDrawable
  (A Drawable   that wraps a bitmap and can be tiled, stretched, or aligned.)
  使用BitmapDrawable   (InputStream is)构造一个BitmapDrawable;使用BitmapDrawable类的getBitmap()获取得到位图;
  BitmapDrawable也提供了显示位图等操作
  使用BitmapFactory
  (Creates Bitmap objects from various   sources, including files, streams, and byte-arrays.)
  使用BitmapFactory类decodeStream(InputStream is)解码位图资源,获取位图
  BitmapFactory的所有函数都是static,这个辅助类可以通过资源ID、路径、文件、数据流等方式来获取位图。
  以上方法在编程的时候可以自由选择,在 Android  SDK中说明可以支持的图片格式如下:png (preferred), jpg (acceptable), gif (discouraged),虽然bmp格式没有明确说明,但是在 Android SDK  Support Media Format中是明确说明了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值