功能是指画一个二维码 (需要在子线程里完成)然后在imageview上显示
1,传统的写法(没用handler啥的)
new Thread(new Runnable() {
@Override
public void run() {
try {
Bitmap qrCode = CodeCreator.createQRCode(ShareActivity.this, SHARE_QR_CODE);
runOnUiThread(new Runnable() {
@Override
public void run() {
img_qr_code.setImageBitmap(qrCode);
}
});
} catch (WriterException e) {
e.printStackTrace();
}
}
}).start();
2,RXJava的写法
Observable.just(SHARE_QR_CODE)
.map(new Function<String, Bitmap>() {
@Override
public Bitmap apply(String s) throws Exception {
return CodeCreator.createQRCode(ShareActivity.this, s);
}
}).subscribe(new Consumer<Bitmap>() {
@Override
public void accept(Bitmap bitmap) throws Exception {
img_qr_code.setImageBitmap(bitmap);
}
});
3,RXJava+lambda
Observable.just(SHARE_QR_CODE)
.map(s -> CodeCreator.createQRCode(ShareActivity.this, s))
.subscribe(bitmap -> img_qr_code.setImageBitmap(bitmap));
我只想说 牛的一匹