Handler mHandler = new Handler();
/**
* 生成二维码图片
*/
private void getShareImg() {
cvLayout.setDrawingCacheEnabled(true);
cvLayout.buildDrawingCache();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
// 要在运行在子线程中
// 获取图片
Bitmap bitmap = cvLayout.getDrawingCache();
if (bitmap == null) {//处理华为meta9等手机出现的问题
bitmap = Bitmap.createBitmap(cvLayout.getWidth(),
cvLayout.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
if (Build.VERSION.SDK_INT >= 11) {
cvLayout.measure(View.MeasureSpec.makeMeasureSpec(cvLayout.getWidth(),
View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(cvLayout.getHeight(), View.MeasureSpec.EXACTLY));
cvLayout.layout((int) cvLayout.getX(),
(int) cvLayout.getY(),
(int) cvLayout.getX() + cvLayout.getMeasuredWidth(),
(int) cvLayout.getY() + cvLayout.getMeasuredHeight());
} else {
cvLayout.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
cvLayout.layout(0, 0, cvLayout.getMeasuredWidth(),
cvLayout.getMeasuredHeight());
}
cvLayout.draw(canvas);
}
savePicture(bitmap, "tuiguangerweima.jpg");// 保存图片
cvLayout.destroyDrawingCache(); // 保存过后释放资源
}
}, 1000);
}
/** * 保存图片,并通知相册 */
public void savePicture(Bitmap bm, String fileName) {
if (null == bm) {
return;
}
File foder = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/saojiajia");
if (!foder.exists()) {
foder.mkdirs();
}
File myCaptureFile = new File(foder, fileName);
try {
if (!myCaptureFile.exists()) {
myCaptureFile.createNewFile();
}
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));
//压缩保存到本地
bm.compress(Bitmap.CompressFormat.JPEG, 90, bos);
bos.flush();
bos.close();
toast("推广二维码已保存");
getApplicationContext().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(myCaptureFile)));
} catch (IOException e) {
e.printStackTrace();
}
}