【发布时间】:2018-01-25 14:16:12
【问题描述】:
我正在尝试使用 Bitmap 和 ImageView 下载并显示图像。我正在使用带有 url 参数的 AsyncTask,但我总是得到一个
我正在尝试使用 Bitmap 和 ImageView 下载并显示图像。我正在使用带有 url 参数的 AsyncTask,但我总是得到一个
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.ImageView.setImageBitmap(android.graphics.Bitmap)”
代码:
public class MainActivity extends AppCompatActivity {
ImageView imageView;
public void images(View view)
{
ImageDownloader task=new ImageDownloader();
Bitmap myImage;
try
{
myImage=task.execute("https://upload.wikimedia.org/wikipedia/en/a/aa/Bart_Simpson_200px.png").get();
imageView.setImageBitmap(myImage); //Here is the part where i am
//Getting exception
}
catch (InterruptedException e)
{
e.printStackTrace();
}
catch (ExecutionException e)
{
e.printStackTrace();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
imageView=(ImageView)findViewById(R.id.myimg); //imageView
setContentView(R.layout.activity_main);
}
public class ImageDownloader extends AsyncTask<String,Void,Bitmap>{
@Override
protected Bitmap doInBackground(String... urls)
{
try {
URL url=new URL(urls[0]);
HttpsURLConnection connection=(HttpsURLConnection)url.openConnection();
connection.connect();
InputStream inputStream=connection.getInputStream();
Bitmap bitmap= BitmapFactory.decodeStream(inputStream);
return bitmap;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
}
【问题讨论】: