android图片太大了
A. Android图片压缩与优化的几种方式
1.使用的图片最好用png格式
2.如果你的图片仍然大的话可以在项目里面点击右键选择convert to Webp,转成webp格式图片可以变小很多!
B. android 中图片太大,导致加载特别慢怎么办
图片不会太大,如果加载过慢或加载不出来可能是以下问题:
手机装的软件过多,储存空间不足
网速过慢
手机本身配置落后
可以尝试长按图片,然后保存到手机,在相册中查看
请采纳,谢谢
C. 在android开发中加载的图片太大,有好几十兆,应该怎么办
如果图片太大会造成OOM内存溢出的错误,需要用Bitmap的压缩机制。
解决方案:
1.使用BitmapFactory.decodeStream替代createBitmap方法
原因是该方法直读取图片字节,调用JNI>>nativeDecodeAsset()来完成decode,无需再使用java层的createBitmap。
2.使用压缩读取技术
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(imageSdUri, options);
final int height = options.outHeight;
final int width = options.outWidth;
options.inSampleSize = 1;
int w = 320;
int h = 480;
h = w*height/width;//计算出宽高等比率
int a = options.outWidth/ w;
int b = options.outHeight / h;
options.inSampleSize = Math.max(a, b);
options.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeFile(imageSdUri, options);
3.及时释放Bitamp
Bitmap对象在不使用时,我们应该先调用recycle()释放内存,然后才它设置为null.虽然recycle()从源码上看,调用它应该能立即释放Bitmap的主要内存,但是测试结果显示它并没能立即释放内存。但是我它应该还是能大大的加速Bitmap的主要内存的释放。
D. android加载大图片的时候如何防止内存溢出
【答案】:android系统给图片分配的内存只有8M,当加载大量图片时往往会出现OOM。
Android加载大量图片内存溢出解决方案:
1)尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存,可以通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的 source
2)使用BitmapFactory.Options对图片进行压缩
InputStream is = this.getResources().openRawResource(R.drawable.pic1);
BitmapFactory.Options ptions=new BitmapFactory.Options();
options.inJustDecodeBounds = false;
options.inSampleSize = 10; //width,hight设为原来的十分一
Bitmap btp =BitmapFactory.decodeStream(is,null,options);
3)运用Java软引用,进行图片缓存,将需要经常加载的图片放进缓存里,避免反复加载
及时销毁不再使用的Bitmap对象
if(!bmp.isRecycle() ){
bmp.recycle() //回收图片所占的内存
system.gc() //提醒系统及时回收
}
E. Android如何处理过大图片的显示
你可以把图片竖直和横向添加滚动条,这样就可以显示发图片
F. 在android开发中,imageView内的图片太大挡住了另外一个请问怎么解决
两个图片是平分屏幕宽的可以这样布局:使用权重
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/fatierenxingming"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/fatierenxingming"/>
</LinearLayout>
G. android照片像素很小但内存很大
文件的大小不一样,是因为属性不同
1.压缩格式不一样,压缩算法不同。比如JPG文件就比较小,BMP文件就非常大。JPG是压缩比最好的图片格式之一。
2、压缩质量不一样。同样是JPG,压缩质量也是有区别的。可以选择10%的压缩质量,效果非常差,但90%的质量,几乎和不压缩一样。一般,JPG的压缩比在70%以上,就和原图的差距不大。
像素就相当于人的个子。两个人个子一样高,说明不了什么,可能性别都不一样。图片也是一样,像素只是画面的大小,其它方面,完全是另一回事。