最初にスピナーが表示されません。ボタンを押すとdownloadImage()メソッドが呼び出されますが、spinner.setVisibility(View.VISIBLE);
はimageView.setImageBitmap(resultImage);
が実行されるまでスピナーを表示しません。Spinnerは適切なタイミングでVisibleになっていませんか?
spinner.setVisibility(View.VISIBLE);
イメージがダウンロードされてイメージビューに設定された後に実行されます。
public class MainActivity extends AppCompatActivity {
ImageView imageView;
Bitmap resultImage;
Bitmap bitmap;
ProgressBar spinner;
public void downloadImage(View view){
ImageDownloader imageDownloader = new ImageDownloader();
spinner.setVisibility(View.VISIBLE);
try {
resultImage = imageDownloader.execute("https://upload.wikimedia.org/wikipedia/en/a/aa/Bart_Simpson_200px.png").get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
imageView.setImageBitmap(resultImage);
//spinner.setVisibility(View.INVISIBLE);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView)findViewById(R.id.imageView);
spinner = (ProgressBar) findViewById(R.id.spinner);
}
public class ImageDownloader extends AsyncTask<String,Void,Bitmap>{
@Override
protected Bitmap doInBackground(String... params) {
try {
URL url = new URL(params[0]);
HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();
connection.connect();
InputStream inputStream = connection.getInputStream();
bitmap = BitmapFactory.decodeStream(inputStream);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
}
}
uはこの作品this- –