异步处理

异步处理

<?xml version="1.0" encoding="utf-8"?>


<ProgressBar
    android:visibility="gone"
    android:id="@+id/progressBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<ImageView
    android:id="@+id/imageView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class MainActivity extends AppCompatActivity {

private ImageView image;
private ProgressBar progressBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    image = findViewById(R.id.imageView);
    progressBar = findViewById(R.id.progressBar);
}
public void showPic(View view){
    AsyncTask<Void, Void, Bitmap> asyncTask = new AsyncTask<Void, Void, Bitmap>() {
        @Override
        protected Bitmap doInBackground(Void... voids) {
            String path = "https://i.loli.net/2017/11/09/5a046546a2a1f.jpg";
            try {
                URL uri = new URL(path);
                HttpURLConnection urlConnection = (HttpURLConnection) uri.openConnection();
                urlConnection.setConnectTimeout(3000);
                int responseCode = urlConnection.getResponseCode();
                if(responseCode == 200){
                    InputStream inputStream = urlConnection.getInputStream();
                    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
                    return bitmap;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);
        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            progressBar.setVisibility(View.VISIBLE);
        }

        @Override
        protected void onPostExecute(Bitmap bitmap) {
            super.onPostExecute(bitmap);
            image.setImageBitmap(bitmap);
            progressBar.setVisibility(View.GONE);
        }
    }
    .execute();
}

}

猜你喜欢

转载自blog.csdn.net/weixin_42791904/article/details/83036123