导航:首页 > 操作系统 > android得到bitmap

android得到bitmap

发布时间:2023-08-09 18:43:22

‘壹’ android开发怎么得到Bitmap所占资源的大小

‘贰’ android: ImageView的setImageBitmap()方法

一、ImageView的setImageBitmap()是设置imageView组件的图片显示。它的定义和源码如下:

1、在源代码中输入:if this is used frequently,may handle bitmaps explicitly // to rece the intermedite drawable abject;

2、它实际上是对setImageDrawable接口的封装,支持直接略过Bitmap对象进行组件图片的设置。需要指出的是这个方法设置图片时,进行大图片的处理时,注意对图片的缩放,否则会内存溢出。

(2)android得到bitmap扩展阅读:

一、Bitmap设置代码:

1、ImageView的setImageBitmap()是设置imageView组件的图片显示,实际上是setImageDrawable接口的封装,支持直接略过Bitmap对象进行组件图片的设置。

2、需要指出的是这个方法设置图片时,进行大图片的处理时,注意对图片的缩放,否则会内存溢出。if this is used frequently,may handle bitmaps explicitly // to rece the intermedite drawable abject;

二、根据位深度,可将位图分为1、4、8、16、24及32位图像等。每个像素使用的信息位数越多,可用的颜色就越多,颜色表现就越逼真,相应的数据量越大。例如,位深度为 1 的像素位图只有两个可能的值(黑色和白色)。

1、所以又称为二值位图。位深度为 8 的图像有 2^8(即 256)个可能的值。位深度为 8 的灰度模式图像有 256 个可能的灰色值。

2、RGB图像由三个颜色通道组成。8 位/通道的 RGB 图像中的每个通道有 256 个可能的值,这意味着该图像有 1600 万个以上可能的颜色值。

3、有时将带有 8 位/通道 (bpc) 的 RGB 图像称作 24 位图像(8 位 x 3 通道 = 24 位数据/像素)。通常将使用24位RGB组合数据位表示的的位图称为真彩色位图。

4、BMP文件是微软公司所开发的一种交换和存储数据的方法,各个版本的Windows都支持BMP格式的文件。Windows提供了快速、方便的存储和压缩BMP文件的方法。BMP格式的缺点是,要占用较大的存储空间,文件尺寸太大。

‘叁’ Android 图片加载(一)高效加载Bitmap 基础篇

由于Bitmap的特殊性以及Android对单个应用所规定的最大内存限制,我们在同时加载大量Bitmap时很容易发生内存溢出,即我们通常所说的OutOfMemoryError(OOM),因此高效加载Bitmap就成为了每个Android开发者的必备技能。

在学习如何高效地加载Bitmap之前,首先介绍一下如何加载一个Bitmap。我们都知道,Bitmap在Android中通常指的是一张图片,那么如何将JPG、PNG等格式的图片转换成Bitmap对象呢?BitmapFactory类给我们提供了一些方法:

接下来开始介绍如何高效地加载Bitmap,其实核心思想很简单: 就是采用BitmapFactory.Options参数来调整图片尺寸来适配控件的大小。

假如我们显示图片的控件ImageView宽高为100×100像素,而图片的尺寸为1024×1024像素,这个时候如果将整个图片加载进来并显示到控件上,自然是很占用内存资源的。这个时候可以通过BitmapFactory.Options按一定的采样率加载缩小后的图片,再将缩小后的图片显示到ImageView中,这样就能减小内存占用从而在一定程度上避免OOM的发生。

通过BitmapFactory.Options来缩放图片,主要是使用它的inSampleSize参数,也就是前面提到的采样率。当采样率inSampleSize为1时,采样后的图片大小为原图大小;当采样率inSampleSize>1,比如为2时,采样后的图片宽高都为原图的1/2,即像素降为原图的1/4,占用的内存大小也就是原图的1/4;比较特殊的是,当采样率inSampleSize<1时,系统会自动将该值当做1来处理。 因此可以得出一个结论:采样率inSampleSize必须是大于1的整数图片才会有缩小的效果,并且采样率同时作用于宽高,也就是说采样后的图片会缩小到原图的1/(inSampleSize^2)。比如inSampleSize=4,那么缩放比例为1/16。

我们现在知道了,通过采样率可以提高图片的加载效率,那么如何才能计算出最合适的采样率?我们可以按照如下流程:

接下来以decodeFile方法为例实现图片的缩放,其他三个方法处理方式类似。

下一篇: Android 图片加载(二)图片加载框架Glide 入门篇

《Android开发艺术探索》

‘肆’ android怎么获取bitmap左上角坐标

用ImageView来装载这个bitmap并且填满整个ImageView,再用imageview对象来获取坐标值,getX(),getY(),获取的就是左上角的坐标值

‘伍’ android 怎么获得bitmap对象

保存界面可视化组件,在调用View.getDrawingCache方法前需要调用measure和layout方法才能可以成功获取布局的Bitmap对象
代码如下:

//获得xml的布局截图
View view=getLayoutInflate r().inflate(R.layout.dialog, null);
//打开图像缓存
view.setDrawingCacheEnabled(true);
//需要调用measure和layout方法
view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
//发送位置和尺寸到view及其所有的子view
view.layout(0, 0, view.getMeasuredWidth(),view.getMeasuredHeight());
//获得可视化组件的截图
Bitmap bitmap=view.getDrawingCache();
try {
//保存在sdcard目录下
FileOutputStream fos=new FileOutputStream("/sdcard/test.png");
bitmap.compress(CompressFormat.PNG, 100, fos);
//关闭文件输出流
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

‘陆’ android中怎么获取一个bitmap在屏幕中位置

是要编写一个这样的功能么,android提供的api里面一般图片都是bitmap,可以通过canvas.drawbitmap的方法在view进行图片的绘制,在方法中需要进行传入一个类型为matrix的参数,设置martrix的一些参数就可以进行图片的放大的绘制,这只是显示,也就是mvc中的view层,然后通过提供的一些触摸函数的重写并实现自己需要的一些功能,如拖动,实际上就是改变bitmap绘制的位置。关于触摸的处理和图片的绘制可以在网上进行一些教程的搜索,我就不罗列了,最终就是需要通过控制函数来改变图片的绘制方式,这也许就是你所需要的功能。

‘柒’ android 读取Bitmap的几种方式

想读取本地项目里的资源图片,但又不能用到R文件。查了很多资料终于找到了。 现总结以下几种读取Bitmap的方法。 1.以文件流的方式,假设在sdcard下有 test.png图片 FileInputStream fis = new FileInputStream("/sdcard/test.png"); Bitmap bitmap=BitmapFactory.decodeStream(fis); 2. 以R文件的方式,假设 res/drawable下有 test.jpg文件Bitmapbitmap =BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable.test); 3.以ResourceStream的方式,但不用到R文件。 Bitmap.bitmap=BitmapFactory.decodeStream(getClass().getResourceAsStream(“/res/drawable/test.png”)); 图片名就可以读取到 Bitmap啦。 BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 2; //图片宽高都为原来的二分之一,即图片为原来的四分一 //以上代码可以优化内存溢出,但它只是改变图片大小,并不能彻底解决内存溢出。

阅读全文

与android得到bitmap相关的资料

热点内容
不允许代理服务器什么意思 浏览:511
盲反卷积算法 浏览:306
峰火战国什么时候能开服务器 浏览:452
加密的pdf怎么提取和修改 浏览:488
压缩空气气体流量计 浏览:845
高角杯如何编程 浏览:1011
哪个app可以下载迷失岛 浏览:29
100以内程序员键盘 浏览:914
调试助手源码是什么 浏览:601
程序员网优 浏览:461
有没有极限压缩方法 浏览:79
岳阳hypermill五轴编程 浏览:385
超级舒服的解压神器 浏览:450
超短macd源码 浏览:166
群晖怎么设置用户访问指定文件夹 浏览:557
安卓怎么测触摸屏 浏览:596
javastring原理 浏览:317
如何关闭手机dhcp服务器 浏览:985
php免费ide 浏览:203
程序员词句 浏览:978