package com.mcxtzhang.rxjavademo.async;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.mcxtzhang.rxjavademo.R;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
public class MockAsyncActivity extends AppCompatActivity {
private Button mButton;
private ImageView mImageView;
private ProgressBar mProgressBar;
private static final String PIC_PATH = "https://www.baidu.com/img/bd_logo1.png";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mock_async);
mButton = (Button) findViewById(R.id.button);
mImageView = (ImageView) findViewById(R.id.imageView);
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
mProgressBar.setVisibility(View.GONE);
mButton.setOnClickListener(v -> new DownloadUtils().loadPicByUrl(PIC_PATH).
subscribeOn(Schedulers.io()).
observeOn(AndroidSchedulers.mainThread()).
subscribe(new Subscriber<Bitmap>() {
@Override
public void onStart() {
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
public void onCompleted() {
Toast.makeText(MockAsyncActivity.this, "下载成功了:", Toast.LENGTH_SHORT).show();
mProgressBar.setVisibility(View.GONE);
}
@Override
public void onError(Throwable e) {
Toast.makeText(MockAsyncActivity.this, "下载出错了:" + e, Toast.LENGTH_SHORT).show();
mProgressBar.setVisibility(View.GONE);
}
@Override
public void onNext(Bitmap bitmap) {
mImageView.setImageBitmap(bitmap);
}
}
)
);
}
}