简体   繁体   English

在Android中从网址获取图片

[英]Getting an image from Url in Android

I am trying to get an image from a url stored in a table but when I try to get the image the ImageView doesn't contain anything it is just blank. 我试图从存储在表中的URL获取图像,但是当我尝试获取图像时,ImageView不包含任何内容,只是空白。

In my code below I have used Picasso to get the picture: 在下面的代码中,我使用了毕加索来获取图片:

public class Imageoffam extends AppCompatActivity {
private boolean success = false; // boolean
private ConnectionClass connectionClass;
public TextView tmtmt;
public ImageView dede;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_imageoffam);
    getSupportActionBar().hide();
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

    tmtmt = (TextView) findViewById(R.id.tomato) ;
    dede = (ImageView) findViewById(R.id.dededede);
    connectionClass = new ConnectionClass();

    SyncData orderData = new SyncData();
    orderData.execute("");
}

private class SyncData extends AsyncTask<String, String, String> {
    String msg = "Success";
    ProgressDialog progress;

    @Override
    protected void onPreExecute() {
        progress = ProgressDialog.show(Imageoffam.this, "Synchronising",
                "Please Wait...", true);
    }

    @Override
    protected String doInBackground(String... strings) {
        try {
            Connection conn = connectionClass.CONN();
            if (conn == null) {
                msg = "Please Check Your Connection";
                success = false;
            } else {

                String dta = getIntent().getStringExtra("blala");
                String query = "SELECT Images.Fimage,family.FName,family.FInfo,family.CID FROM Images INNER JOIN family ON family.FID = Images.FID WHERE family.FInfo = (N'" +dta+ "')";
                Statement stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery(query);

                while (rs.next()) {
                    try { 
                        Picasso.with(Imageoffam.this).load(rs.getString("Fimage")).into(dede);

                    } catch (Exception ex) {
                        ex.printStackTrace();
                    }
                }

            }
        } catch (Exception e) {
            e.printStackTrace();
            Writer writer = new StringWriter();
            e.printStackTrace(new PrintWriter(writer));
            msg = writer.toString();
            success = false;

        }
        return msg;
    }

    @Override
    protected void onPostExecute(String msg) {
        progress.dismiss();
        Toast.makeText(Imageoffam.this, msg + "", Toast.LENGTH_LONG).show();
        if (success == false) {
        } else {
            try {

            } catch (Exception ex) {

            }

        }
    }
}

It doesn't give any error message although it doesn't show the image in the ImageView. 尽管它没有在ImageView中显示图像,但它没有给出任何错误消息。

Can someone please tell me what am I doing wrong? 有人可以告诉我我在做什么错吗?

Any help would be appreciated. 任何帮助,将不胜感激。

if you store image uri in db you need to setting uri on ImageView by imageView.setImageUri(uri); 如果将图像uri存储在db中,则需要通过imageView.setImageUri(uri)在ImageView上设置uri; after get to uri from db 从数据库到uri后

When using Picasso, no need of AsyncTask, just do: 使用Picasso时,不需要AsyncTask,只需执行以下操作:

Picasso.with(context).load(imageUri).into(ivBasicImage);

For example: 例如:

String imageUri = "https://i.imgur.com/tGbaZCY.jpg";
ImageView ivBasicImage = (ImageView) findViewById(R.id.ivBasicImage);
Picasso.with(context).load(imageUri).into(ivBasicImage);

You can also try Glide : 您也可以尝试Glide

Glide.with(context).load(url).into(imageView);

我推荐使用本地Webview方法代替picasso方法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM