我在发布之前进行了研究,但无法真正得到明确的答案,所以我来到了这里。在这些代码行中,我想了解它们究竟做了什么。我来自 cpp 背景,这里的情况真的很不同..
new DisplayImageFromURL((ImageView) findViewById(R.id.my_image))
.execute("http://www.tmonews.com/wp-content/uploads/2012/10/androidfigure.jpg");
这段代码到底是做什么的?在我的代码中声明了一个私有类,但我不知道它传递给下一个类的信息是什么。
private class DisplayImageFromURL extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pd = new ProgressDialog(MainActivity.this);
pd.setMessage("Loading...");
pd.show();
}
public DisplayImageFromURL(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
pd.dismiss();
}
}
}
这在这段代码中有什么作用?那个花括号在这里是什么意思?
public DisplayImageFromURL(ImageView bmImage) {
this.bmImage = bmImage;
}
最后一个..它从哪里获得 URl?
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];