java - 在android中将图像url转换为位图时如何解决java.lang.OutOfMemoryError异常?

标签 java android bitmap

这是我为从 url 获取图像到位图而编写的方法,每当我使用 Handler

向下滚动主视图时,我都会运行它
public void setimage(final ImageView imageview, final String urll,final int postion)
{

new Thread(new Runnable() 
 {

    @Override
    public void run() 
    {
        URL url = null;
        try {
            url = new URL(urll);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoInput(true);
            connection.connect();
            InputStream input = connection.getInputStream();
            final Bitmap myBitmap = BitmapFactory.decodeStream(input);

            handler.post(new Runnable() 
            {
                @Override
                public void run() {

                    imageview.setImageBitmap(Bitmap.createScaledBitmap(myBitmap, 160, 140, true));
                }
            });

            web.get(postion).setImage(myBitmap);

        }
        catch (IOException e) 
        {
            e.printStackTrace();

        }

    }

}).start();

}

每当我向下滚动以在 logcat

中查看更多图像时,这是我在自定义适配器中遇到的异常

java.lang.OutOfMemoryError android.graphics.BitmapFactory.nativeDecodeStream(Native Method)

请告诉我哪里做错了

最佳答案

您可以使用

请求使用更多
android:largeHeap="true"

在 list 中。

引用:How to solve java.lang.OutOfMemoryError trouble in Android

关于java - 在android中将图像url转换为位图时如何解决java.lang.OutOfMemoryError异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28494921/

相关文章:

android - 从不同屏幕创建时在同一设备上获取不同的位图大小

java - 瓷砖定义解释。 .* 和 {1} 有什么作用?

java - java中读取文本文件时出现空指针

c# - 如何使用 C# 将 jpg 文件转换为位图?

android - 收听 android 日历更改。 (同步/删除/插入等。)

Android 如何从 SD 卡读取 json 文件(文本文件)并将数据显示到 textview

android - 从另一个资源中绘制位图

java - 从元素列表中的 json 加载

Java 8 : String join operation has significant performance impact

java - Rally java rest API - 无法解析对象引用