簡體   English   中英

在Android中從網址獲取圖片

[英]Getting an image from Url in Android

我試圖從存儲在表中的URL獲取圖像,但是當我嘗試獲取圖像時,ImageView不包含任何內容,只是空白。

在下面的代碼中,我使用了畢加索來獲取圖片:

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) {

            }

        }
    }
}

盡管它沒有在ImageView中顯示圖像,但它沒有給出任何錯誤消息。

有人可以告訴我我在做什么錯嗎?

任何幫助,將不勝感激。

如果將圖像uri存儲在db中,則需要通過imageView.setImageUri(uri)在ImageView上設置uri; 從數據庫到uri后

使用Picasso時,不需要AsyncTask,只需執行以下操作:

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

例如:

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

您也可以嘗試Glide

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM