0

我在发布之前进行了研究,但无法真正得到明确的答案,所以我来到了这里。在这些代码行中,我想了解它们究竟做了什么。我来自 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];
4

1 回答 1

0
public DisplayImageFromURL(ImageView bmImage) {
this.bmImage = bmImage;
}

上面是这个类的构造函数。由于它是一种方法,因此大括号用于显示方法的开始和结束位置。

url 是参数,它们是传递给执行方法的内容。

new DisplayImageFromURL((ImageView) findViewById(R.id.my_image))
.execute("http://www.tmonews.com/wp-content/uploads/2012/10/androidfigure.jpg");

AsyncTask 参数、进度、结果

于 2013-06-12T20:14:40.853 回答