[英]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.