如何从 URL 加载图像到 Java Android?代码没有错误,但不起作用

How to load an image from URL to Java Android? No error in code but it doesn't work

我正在开发一个新的 Android Java 程序,它带有两个变量(字符串标题和字符串 imageUrl),然后添加名为字符串(标题)的按钮。

当用户单击按钮时,应用程序必须从字符串 (imageUrl) 中的 url 加载图像。

我面临的问题是 none 的加载图像方法对我有用!!

虽然我的项目完全没有错误!!

这是我的代码:

public void start(String res) {
    try {
        JSONArray jarray = new JSONArray(jsonString);
        for (int k = 0; k < jarray.length(); k++) {
            JSONObject obj = jarray.getJSONObject(k);
            Button btn = new Button(this);
            btn.setText(obj.getString("title"));
            final String link = obj.getString("link"); 
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    openImage(link);
                }
            });
            space.addView(btn);
            dialog.dismiss();
        }
    } catch(Exception e) {
    }
}
public void openImage(final String urk) {
    dialog = ProgressDialog.show(this, "", "loading...", true);
    new Thread(new Runnable() {
        public void run() {
            nextstepload(urk);
        }
    });
}
public void nextstepload(final String urk) {
    try {
        ImageView im = findViewById(R.id.img);
        URL url = new URL(urk);
        Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
        im.setImageBitmap(image); 
        dialog.dismiss(); 
    } catch(IOException e) {
        System.out.println(e);
    }
}

我的Xml表格是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/displayer">
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/img"/>
    </LinearLayout>
</LinearLayout>

注意事项: 我在 Whosebug 上阅读了之前关于这个主题的文章,但其中 none 对我的帮助已经足够了!我可能特别需要适合我的项目的代码。

非常感谢

试试 Glide。 https://github.com/bumptech/glide

您可以这样加载图片:

Glide
    .with(context)
    .load(YOUR URL HERE - AS STRING)
    .placeholder(R.drawable.loading_spinner) // if you want some placeholder, it comes here
    .into(myImageView); // The imageview reference.

你只是忘了Thread.start()

new Thread(new Runnable() {
    public void run() {
        nextstepload(urk);
    }
}).start();

一个Thread对象本身什么都不做。实例化后必须.start()