Android 图片常见问题集锦
2012-06-23 00:13
375 查看
Q:加载时图片时有一些图片太大,导致内存溢出,想把这些图片压缩成一个缩略图,该怎么做?
不能只是缩小图片大小,而是要把体积降下来,几百K的图片压缩成几K或几百B.
A1:
压缩图片质量:
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, fos);
其中的quality为0~100, 可以压缩图片质量, 不过对于大图必须对图片resize
这个是等比例缩放:
bitmap = Bitmap.createScaledBitmap(bitmap, width, height, false);
newBitmap = Bitmap.createBitmap(oldBitmap, 0, 0, width, height, matrix,
true);//用距阵的方式缩放
这个是截取图片某部分:
bitmap = Bitmap.createBitmap(bitmap, x, y, width, height);
这几个方法都是针对Bitmap的, 不过鉴于Bitmap可以从file中读取, 也可以写入file.
这是我知道Android自带库里中唯一可以缩放和压缩的图片方法.
--------------------------------------------------------------------------------------------------------------------------------------------------
A2:
内存溢出,你这么处理就可以。用完及时回收
BitmapFactory.Options options = new BitmapFactory.Options();
options.inTempStorage = new byte[16*1024];
Bitmap bitmapImage = BitmapFactory.decodeFile(path,opt);
Q:Bitmap如何保存成为一个bmp文件:
A:很多网友可能发现了Android的Bitmap对象无法保存成为一个bmp文件,即提供的方法只有compress(Bitmap.CompressFormat format, int quality, OutputStream stream) ,可以存为png和jpg,png可能还好说,但是jpg是有损压缩会降低图片的质量,其实Google还提供了一个API在Bitmap类,通过copyPixelsToBuffer(Buffer dst) 这个方法来解决,Buffer类型,和前几天我们说到的NIO中的ByteBuffer处理方式一样,需要说明的是java中的Buffer在内存中是连续成块的,同时底层有C++支持效率还是很高的。
通过copyPixelsToBuffer(Buffer dst) 方法将会返回一个RGB8888格式的DIB文件,DIB位图和设备无关,这里Android123提醒大家,如果想显示出位图,还需要将其加上位图的文件头才行。
Q:
from: http://blog.csdn.net/infsafe/article/details/5482194
不能只是缩小图片大小,而是要把体积降下来,几百K的图片压缩成几K或几百B.
A1:
压缩图片质量:
bitmap.compress(Bitmap.CompressFormat.JPEG, quality, fos);
其中的quality为0~100, 可以压缩图片质量, 不过对于大图必须对图片resize
这个是等比例缩放:
bitmap = Bitmap.createScaledBitmap(bitmap, width, height, false);
newBitmap = Bitmap.createBitmap(oldBitmap, 0, 0, width, height, matrix,
true);//用距阵的方式缩放
这个是截取图片某部分:
bitmap = Bitmap.createBitmap(bitmap, x, y, width, height);
这几个方法都是针对Bitmap的, 不过鉴于Bitmap可以从file中读取, 也可以写入file.
这是我知道Android自带库里中唯一可以缩放和压缩的图片方法.
--------------------------------------------------------------------------------------------------------------------------------------------------
A2:
内存溢出,你这么处理就可以。用完及时回收
BitmapFactory.Options options = new BitmapFactory.Options();
options.inTempStorage = new byte[16*1024];
Bitmap bitmapImage = BitmapFactory.decodeFile(path,opt);
Q:Bitmap如何保存成为一个bmp文件:
A:很多网友可能发现了Android的Bitmap对象无法保存成为一个bmp文件,即提供的方法只有compress(Bitmap.CompressFormat format, int quality, OutputStream stream) ,可以存为png和jpg,png可能还好说,但是jpg是有损压缩会降低图片的质量,其实Google还提供了一个API在Bitmap类,通过copyPixelsToBuffer(Buffer dst) 这个方法来解决,Buffer类型,和前几天我们说到的NIO中的ByteBuffer处理方式一样,需要说明的是java中的Buffer在内存中是连续成块的,同时底层有C++支持效率还是很高的。
通过copyPixelsToBuffer(Buffer dst) 方法将会返回一个RGB8888格式的DIB文件,DIB位图和设备无关,这里Android123提醒大家,如果想显示出位图,还需要将其加上位图的文件头才行。
Q:
Android缩放drawable Matrix
from: http://blog.csdn.net/infsafe/article/details/5482194
相关文章推荐
- Android 图片常见问题集锦
- android学习中常见问题集锦
- Android面试中常见问题集锦
- Android问题集锦转载之三:Javah 常见错误记录-NDK与JNI除错
- Android问题集锦之三十九:使用Camera录像的常见问题
- Android Studio使用心得 - 常见问题集锦
- Android保存图片到系统图库及常见问题解决
- Android常见问题集锦
- Android 开发常见问题集锦
- Android图片常见问题处理
- android ListView常见问题解决方法(滚动背景变黑,去除滑动时阴影,拖动时Item图片不显示)
- 【Android 问题集锦】关于android ImageView前景图片显示很小的问题
- Android常见问题集锦
- Android开发常见问题集锦------持续更新
- Android常见问题集锦
- [Android开发常见问题-22] Android中9.png图片详解
- Android常见问题分析之自定义ListView FastScroller滑块图片 以及 android:fastScrollEnabled="true" 不起作用
- Android常见问题集锦
- Android进阶开发常见问题小结