- 浏览: 3558316 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
android 中用bitmap 时很容易内存溢出,报如下错误:
● 主要是加上这段:
● eg1:(通过Uri取图片)
- private ImageView preview;
- BitmapFactory.Options options = new BitmapFactory.Options();
- options.inSampleSize = 2 ; //图片宽高都为原来的二分之一,即图片为原来的四分之一
- Bitmap bitmap = BitmapFactory.decodeStream(cr
- .openInputStream(uri), null , options);
- preview.setImageBitmap(bitmap);
- private ImageView preview;
- BitmapFactory.Options options = new BitmapFactory.Options();
- options.inSampleSize = 2;//图片宽高都为原来的二分之一,即图片为原来的四分之一
- Bitmap bitmap = BitmapFactory.decodeStream(cr
- .openInputStream(uri), null, options);
- preview.setImageBitmap(bitmap);
以上代码可以优化内存溢出,但它只是改变图片大小,并不能彻底解决内存溢出。
● eg2:(通过路径去图片)
- private ImageView preview;
- private String fileName= "/sdcard/DCIM/Camera/2010-05-14 16.01.44.jpg" ;
- BitmapFactory.Options options = new BitmapFactory.Options();
- options.inSampleSize = 2 ; //图片宽高都为原来的二分之一,即图片为原来的四分之一
- Bitmap b = BitmapFactory.decodeFile(fileName, options);
- preview.setImageBitmap(b);
- filePath.setText(fileName);
- private ImageView preview;
- private String fileName= "/sdcard/DCIM/Camera/2010-05-14 16.01.44.jpg";
- BitmapFactory.Options options = new BitmapFactory.Options();
- options.inSampleSize = 2;//图片宽高都为原来的二分之一,即图片为原来的四分之一
- Bitmap b = BitmapFactory.decodeFile(fileName, options);
- preview.setImageBitmap(b);
- filePath.setText(fileName);
★Android 还有一些性能优化的方法:
● 首先内存方面,可以参考 Android堆内存也可自己定义大小 和 优化Dalvik虚拟机的堆内存分配
● 基础类型上,因为Java没有实际的指针,在敏感运算方面还是要借助NDK来完成。这点比较有意思的是Google推出NDK可能是帮助游戏开发人员,比如OpenGL ES的支持有明显的改观,本地代码操作图形界面是很必要的。
● 图形对象优化,这里要说的是Android上的Bitmap对象销毁,可以借助recycle()方法显示让GC回收一个Bitmap对象,通常对一个不用的Bitmap可以使用下面的方式,如
● 目前系统对动画支持比较弱智对于常规应用的补间过渡效果可以,但是对于游戏而言一般的美工可能习惯了GIF方式的统一处理,目前 Android系统仅能预览GIF的第一帧,可以借助J2ME中通过线程和自己写解析器的方式来读取GIF89格式的资源。
● 对于大多数Android手机没有过多的物理按键可能我们需要想象下了做好手势识别 GestureDetector 和重力感应来实现操控。通常我们还要考虑误操作问题的降噪处理。
Android堆内存也可自己定义大小
对于一些大型Android项目或游戏来说在算法处理上没有问题外,影响性能瓶颈的主要是Android自己内存管理机制问题,目前手机厂商对RAM都比 较吝啬,对于软件的流畅性来说RAM对性能的影响十分敏感,除了上次Android开发网提到的 优化Dalvik虚拟机的堆内存分配外,我们还可以强制定义自己软件的对内存大小,我们使用Dalvik提供的 dalvik.system.VMRuntime类来设置最小堆内存为例:
- private final static int CWJ_HEAP_SIZE = 6 * 1024 * 1024 ;
- VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE); //设置最小heap内存为6MB大小。
- private final static int CWJ_HEAP_SIZE = 6* 1024* 1024 ;
- VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE); //设置最小heap内存为6MB大小。
当然对于内存吃紧来说还可以通过手动干涉GC去处理,我们将在下次提到具体应用。
优化Dalvik虚拟机的堆内存分配
对于 Android平台来说,其托管层使用的Dalvik JavaVM从目前的表现来看还有很多地方可以优化处理,比如我们在开发一些大型游戏或耗资源的应用中可能考虑手动干涉GC处理,使用 dalvik.system.VMRuntime类提供的setTargetHeapUtilization方法可以增强程序堆内存的处理效率。当然具体 原理我们可以参考开源工程,这里我们仅说下使用方法:
在程序onCreate时就可以调用
即可。
发表评论
-
android离线
2019-11-04 21:25 292https://www.jianshu.com/p/fdfc4 ... -
android 异步更新
2015-07-11 22:42 1495http://www.apkbus.com/forum.php ... -
仿微米
2015-06-26 10:22 0http://www.javaapk.com/source/4 ... -
仿微信
2015-06-26 10:21 1913http://www.javaapk.com/source/1 ... -
网易客户端
2015-06-26 10:20 1597http://www.javaapk.com/source/4 ... -
仿朋友圈
2015-06-26 10:18 1696http://www.javaapk.com/source/8 ... -
仿朋友圈
2015-06-26 10:13 1830http://www.eoeandroid.com/threa ... -
全国ABC查询
2015-06-26 10:07 1359IM 功能 环信云 信息统计 Umeng 分享Umeng 更新 ... -
android 判断网络
2015-06-25 16:00 1258http://www.cnblogs.com/renqingp ... -
android 多彩表格
2015-05-31 16:06 1467http://blog.csdn.net/conowen/ar ... -
android socket
2015-05-31 16:01 1638http://blog.csdn.net/conowen/ar ... -
微信播放语音3
2015-02-25 12:00 1421http://download.csdn.net/detail ... -
微信语音播放2
2015-02-25 11:57 1345http://download.csdn.net/detail ... -
微信语音播放
2015-02-25 11:56 1693http://www.apkbus.com/android-1 ... -
超强的资料整合
2015-01-05 11:04 1217http://zz563143188.iteye.com/bl ... -
最强开发资源平台大合集
2015-01-04 14:50 1880程序员代码应用开发平 ... -
Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
2014-09-04 15:45 1370http://blog.csdn.net/vipzjyno1/ ... -
android应用推广
2014-09-03 23:25 1307应用推广不必愁,有米 ... -
android 图片异步加载
2014-09-03 16:47 1126http://www.csdn.net/article/201 ... -
android hander的使用
2014-09-02 23:46 1355http://www.cnblogs.com/xiaoran1 ...
相关推荐
总的来说,Android中对Bitmap图片设置任意角为圆角涉及到了Bitmap的处理、Canvas的绘制、Matrix的旋转以及PorterDuff模式的应用等多个知识点。通过这些技术的组合使用,我们可以灵活地创造出各种定制化的图片显示...
在实际应用中,我们可能需要根据需求动态调整图片大小或比例,这时可以使用Bitmap.createScaledBitmap方法。这个方法可以将Bitmap缩放到指定的尺寸,同时保持原图像的比例: ```java // 缩放Bitmap至新的尺寸 ...
我就废话不多说了,大家还是直接看代码吧~ //Uri.parse(file://+result.getImage... //方法一:通过uri把图片转化为bitmap的方法 Bitmap bitmap= BitmapFactory.decodeFile(path); int height= bitmap.get
在Android开发中,有时我们需要将Bitmap对象转换成不同的图片格式,比如BMP。BMP(Bitmap File Format)是一种常见的位图文件格式,但它并不像JPEG或PNG那样被Android SDK直接支持。本文将详细介绍如何在Android中将...
如果需要动态调整图片大小以适应视图,可以使用`Bitmap.createScaledBitmap()`方法。 4. 图片裁剪: 在这个示例中,裁剪圆形头像是一个常见的需求,通常通过Canvas和Paint来实现。首先创建一个圆形Bitmap,然后在...
- 考虑到Android设备的内存限制,转换后的Bitmap应使用适当配置,如调整大小、选择适当的压缩格式(如ARGB_8888或RGB_565)等,以减少内存消耗。 - 使用异步操作,避免UI线程阻塞,可以使用AsyncTask或其他异步...
"Android bitmap图片压缩工具类"就是针对这一需求设计的一个实用工具,它能够有效地减小图片的大小,同时满足基本的显示要求。 BitmapCompressUtils这个类通常包含了一系列静态方法,用于对Bitmap进行不同类型的...
Android提供了几种不同的配置选项,如`inDensity`、`inTargetDensity`和`inSampleSize`,用于控制Bitmap在内存中的大小。`inSampleSize`可以设定解码时的缩放比例,以减少内存消耗。 2. **Bitmap配置**:Android的...
使用Matrix对象调整Bitmap的大小,以适应特定的尺寸: ```java // 获取原图的宽高 int width = bm.getWidth(); int height = bm.getHeight(); // 设置目标尺寸 int newWidth = 320; int newHeight = 480; ...
- 分辨率适配:根据设备屏幕分辨率加载合适的图片大小,避免加载过大的资源。 - 懒加载和渐进式加载:仅在需要时加载图片,对于大图可先加载低分辨率版本,提高用户体验。 7. **图片处理** - 可以使用`Canvas`和...
本示例将详细介绍Android中Bitmap的处理,包括图片缓存策略和加载大图的技巧。 1. **Bitmap的内存管理** - **内存分配**:Bitmap对象会根据其像素宽度、高度和颜色格式占用不同的内存。例如,一个2000x1500像素的...
可以使用BitmapFactory.Options类来控制解码时的参数,比如设置inSampleSize以减小图片的大小。 此外,你还可以通过矩阵(Matrix)进行旋转、缩放、平移等操作,使图标在背景上的位置和方向更加灵活。同时,对于...
以上就是实现“android 获取界面部分view,view截图,生成bitmap图片”的核心步骤和涉及的技术点。在实际开发中,可能还需要考虑性能优化,比如避免在主线程进行耗时操作,或者在内存有限的情况下使用更高效的位图...
综上所述,处理Android Bitmap OOM问题需要综合运用多种技术,包括调整图片大小、选择合适的编码格式、合理加载和释放Bitmap,以及利用库和缓存机制。在Android 2.0版本中关闭硬件加速是一个可行的解决方案,但应...
一张Bitmap图片占用的内存大小等于宽度乘以高度乘以每个像素所占的位数。例如,一个1024x768像素的RGB_565格式图片,每个像素占用2个字节,那么它占用的内存就是1024x768x2=1.5MB。如果这个图片加载到内存中,而设备...
我们通常使用`View`的测量尺寸(`getMeasuredWidth()`和`getMeasuredHeight()`)来确定Bitmap的大小。 2. **准备Canvas**:`Canvas`是用来绘制Bitmap的画布,通过`Bitmap.createBitmap()`方法返回的Bitmap对象,...
本文将详细讲解如何实现这个功能,包括设置文字的大小、字体、颜色、透明度,以及背景色、背景透明度,并指导如何将生成的图片保存到SD卡上。 首先,我们需要在Android项目中添加必要的依赖。为了绘制文字,我们将...
这个【Android】使用GLSurfaceView+Canera预览+保存帧Bitmap的项目,提供了一个完整的示例,让我们深入了解一下这两个组件如何协同工作。 首先,`GLSurfaceView`是Android系统为了高效地显示OpenGL ES图形而设计的...
在Android开发中,将View转换为Bitmap是一种常见的需求,尤其在实现屏幕截图、保存或分享View内容、创建自定义控件或动态生成图片等场景下。以下是对如何将Android View转换为Bitmap的深入解析,包括代码逻辑分析、...
- **SampleSize**:通过设置`inSampleSize`减少解码时的图片大小,降低内存占用。 - **BitmapFactory.Options**:利用Options参数进行解码控制,例如仅计算尺寸不返回Bitmap(`inJustDecodeBounds`)。 4. **位图...