package com.hdl.photovoltaic.ui.me;
|
|
|
import android.content.Intent;
|
import android.graphics.Bitmap;
|
import android.graphics.Color;
|
import android.os.Bundle;
|
import android.provider.MediaStore;
|
import android.text.TextUtils;
|
import android.view.View;
|
|
import androidx.appcompat.content.res.AppCompatResources;
|
|
import com.google.gson.Gson;
|
import com.hdl.photovoltaic.R;
|
import com.hdl.photovoltaic.base.CustomBaseActivity;
|
import com.hdl.photovoltaic.config.UserConfigManage;
|
import com.hdl.photovoltaic.databinding.ActivityQrCodeMainBinding;
|
import com.hdl.photovoltaic.other.HdlCommonLogic;
|
import com.hdl.photovoltaic.other.HdlThreadLogic;
|
import com.hdl.photovoltaic.ui.bean.QrCodeBean;
|
|
/**
|
* 二维码名片的界面
|
*/
|
public class QrCodeMainActivity extends CustomBaseActivity {
|
ActivityQrCodeMainBinding viewBinding;
|
|
@Override
|
public Object getContentView() {
|
viewBinding = ActivityQrCodeMainBinding.inflate(getLayoutInflater());
|
return viewBinding.getRoot();
|
}
|
|
@Override
|
public void onBindView(Bundle savedInstanceState) {
|
setStatusBarTranslucent();
|
getWindow().setNavigationBarColor(getColor(R.color.text_00000000));
|
//初始化
|
initView();
|
//初始化界面监听器
|
initEvent();
|
//初始化数据
|
initData();
|
}
|
|
private void initData() {
|
}
|
|
|
private void initEvent() {
|
viewBinding.toolbarTopRl.topBackLl.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
finish();
|
}
|
});
|
|
viewBinding.saveTv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
//假设你已经有了一个二维码图片,这里是一个简化的截图方法
|
viewBinding.qrCodeIv.setDrawingCacheEnabled(true);
|
Bitmap bitmap = viewBinding.qrCodeIv.getDrawingCache();
|
// 保存截图到相册
|
saveImageToGallery(bitmap);
|
// 清理缓存
|
viewBinding.qrCodeIv.setDrawingCacheEnabled(false);
|
if (bitmap != null && !bitmap.isRecycled()) {
|
// 确保不是已经回收的Bitmap
|
// 进行你需要的操作
|
Bitmap.createBitmap(bitmap).recycle();
|
}
|
}
|
});
|
|
}
|
|
|
private void saveImageToGallery(Bitmap bitmap) {
|
String path = MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "QRCode", null);
|
if (path != null) {
|
HdlThreadLogic.toast(_mActivity, getString(R.string.save_qr_code_successfully));
|
// Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();
|
} else {
|
HdlThreadLogic.toast(_mActivity, getString(R.string.failed_to_save_qr_code));
|
//Toast.makeText(this, "保存失败", Toast.LENGTH_SHORT).show();
|
}
|
}
|
|
private void initView() {
|
viewBinding.toolbarTopRl.topBarView.setBackgroundColor(getColor(R.color.text_00000000));
|
viewBinding.toolbarTopRl.topTitleTv.setText(R.string.qr_code_business_card);
|
viewBinding.toolbarTopRl.topBackLl.setVisibility(View.VISIBLE);
|
// viewBinding.toolbarTopQrCodeRl.topMoreBtn.setVisibility(View.VISIBLE);
|
// viewBinding.toolbarTopQrCodeRl.topMoreIv.setImageDrawable(AppCompatResources.getDrawable(_mActivity, R.drawable.save_image));
|
if (!TextUtils.isEmpty(UserConfigManage.getInstance().getUserName())) {
|
viewBinding.userNameTv.setVisibility(View.VISIBLE);
|
viewBinding.userNameTv.setText(UserConfigManage.getInstance().getUserName());
|
}
|
String str = TextUtils.isEmpty(UserConfigManage.getInstance().getBingPhone()) ? UserConfigManage.getInstance().getBingEmail() : UserConfigManage.getInstance().getBingPhone();
|
if (!TextUtils.isEmpty(str)) {
|
viewBinding.userAccountTv.setVisibility(View.VISIBLE);
|
viewBinding.userAccountTv.setText(str);
|
}
|
QrCodeBean qrCodeBean = new QrCodeBean();
|
qrCodeBean.setUserEmail(UserConfigManage.getInstance().getBingEmail());
|
qrCodeBean.setUserPhone(UserConfigManage.getInstance().getBingPhone());
|
qrCodeBean.setUserName(UserConfigManage.getInstance().getUserName());
|
qrCodeBean.setAccount(UserConfigManage.getInstance().getAccount());
|
// String content = UserConfigManage.getInstance().getBingEmail() + ";" + UserConfigManage.getInstance().getBingPhone() + ";" + UserConfigManage.getInstance().getUserName() + ";" + UserConfigManage.getInstance().getAccount();
|
// String content = UserConfigManage.getInstance().getAccount();//
|
String content = new Gson().toJson(qrCodeBean);//内容过长微信扫码显示有问题
|
Bitmap bitmap = HdlCommonLogic.getInstance().createQRCodeBitmap(content, 168, 168, "UTF-8", "H", "1", Color.BLACK, Color.WHITE);
|
viewBinding.qrCodeIv.setImageBitmap(bitmap);
|
|
}
|
}
|