Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将多个图像从web加载到ImageView_Java_Android_Performance_Android Networking_Android Threading - Fatal编程技术网

Java 如何将多个图像从web加载到ImageView

Java 如何将多个图像从web加载到ImageView,java,android,performance,android-networking,android-threading,Java,Android,Performance,Android Networking,Android Threading,要从网站加载多个图像,编写了以下代码 public void connectImgtoView(final int max) { new Thread(new Runnable() { @Override public void run() { URL url = null; for (int i = 0; i < max; i++) {

要从网站加载多个图像,编写了以下代码

    public void connectImgtoView(final int max) {

        new Thread(new Runnable() {
            @Override
            public void run() {
                URL url = null;
                for (int i = 0; i < max; i++) {
                    try {
                        url = new URL(postImgUrl.get(i));
                    } catch (MalformedURLException e) {
                        e.printStackTrace();
                    }

                    try {
                        final BufferedInputStream bufferedInputStream
                                = new BufferedInputStream(url.openStream());
                        Bitmap bitmap = BitmapFactory.decodeStream(bufferedInputStream);
                        bufferedInputStream.close();

                        final Bitmap scaledBitmap = Bitmap.createScaledBitmap(
                                bitmap,
                                (int) (992),
                                (int) (1403),
                                true
                        );

                        final int finalI = i;
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                postImg[finalI].setImageBitmap(scaledBitmap);
                            }
                        });
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                progressOFF();
            }
        }).start();
    }
public void connectImgtoView(最终整数最大值){
新线程(newrunnable()){
@凌驾
公开募捐{
URL=null;
对于(int i=0;i
虽然此方法已成功执行,但存在性能速度太慢的问题

所以我想知道什么比这个方法快

请帮帮我

变量描述

postImgUrl:类型为ArrayList,这是具有我想要的图像的url


postImg:类型是ImageView数组,这是布局中存在的ImageView。

尝试将for循环放在
线程的外面,以便可以同时实例化和处理多个
线程

public void connectImgtoView(final int max) {
    for (int i = 0; i < max; i++) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                URL url = null;
                    try {
                        url = new URL(postImgUrl.get(i));
                    } catch (MalformedURLException e) {
                        e.printStackTrace();
                    }

                    try {
                        final BufferedInputStream bufferedInputStream
                                = new BufferedInputStream(url.openStream());
                        Bitmap bitmap = BitmapFactory.decodeStream(bufferedInputStream);
                        bufferedInputStream.close();

                        final Bitmap scaledBitmap = Bitmap.createScaledBitmap(
                                bitmap,
                                (int) (992),
                                (int) (1403),
                                true
                        );

                        final int finalI = i;
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                postImg[finalI].setImageBitmap(scaledBitmap);
                            }
                        });
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                progressOFF();
            }
        }).start();
    }
}
public void connectImgtoView(最终整数最大值){
对于(int i=0;i