700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android开发:图片过大导致bitmap的内存溢出问题

Android开发:图片过大导致bitmap的内存溢出问题

时间:2022-08-01 06:52:02

相关推荐

Android开发:图片过大导致bitmap的内存溢出问题

项目场景:

Android开发:图片过大导致bitmap的内存溢出问题

问题描述

出现Canvas: trying to draw too large(151727408bytes) bitmap.错误

try {URL url = new URL(item.get("item_image").toString());// 获得连接HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(6000);//设置超时conn.setReadTimeout(6000);conn.setUseCaches(false);//不缓存conn.connect();InputStream is = conn.getInputStream();//获得图片的数据流Bitmap bitmap = BitmapFactory.decodeStream(is);is.close();holder.image.setImageBitmap(bitmap);} catch (Exception e) {System.out.println("异常为:");e.printStackTrace();}

解决方案:

加入options来缩小图片

try {URL url = new URL(item.get("item_image").toString());// 获得连接HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(6000);//设置超时conn.setReadTimeout(6000);conn.setUseCaches(false);//不缓存conn.connect();InputStream is = conn.getInputStream();//获得图片的数据流BitmapFactory.Options options=new BitmapFactory.Options();options.inJustDecodeBounds = false;options.inSampleSize = 10;Bitmap bitmap = BitmapFactory.decodeStream(is,null,options);is.close();holder.image.setImageBitmap(bitmap);} catch (Exception e) {System.out.println("异常为:");e.printStackTrace();}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。