频道栏目
首页 > 程序开发 > 移动开发 > 其他 > 正文
二维码扫描+输入框输入内容,点击按钮生成二维码
2018-06-20 03:01:45      个评论    来源:chenyibai的博客  
收藏   我要投稿

二维码扫描+输入框输入内容,点击按钮生成二维码。

\

实现步骤:

1. 倒libzxing包

2. 在Settings.gradle中添加??

include ':app','libzxing'

3.添加依赖

//布局文件




 

  

//核心代码

public class ShowActivity extends AppCompatActivity {

 private TextView resultTextView;
 private EditText qrStrEditText;
 private ImageView qrImgImageView;
 private CheckBox mCheckBox;
 private Button scanBarCodeButton;
 private Button generateQRCodeButton;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_show);
  resultTextView = (TextView) this.findViewById(R.id.tv_scan_result);
  qrStrEditText = (EditText) this.findViewById(R.id.et_qr_string);
  qrImgImageView = (ImageView) this.findViewById(R.id.iv_qr_image);
  mCheckBox = (CheckBox) findViewById(R.id.logo);
  scanBarCodeButton = (Button) this.findViewById(R.id.btn_scan_barcode);
  generateQRCodeButton = (Button) this.findViewById(R.id.btn_add_qrcode);

  //扫描
  //扫描
  scanBarCodeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
 if (ContextCompat.checkSelfPermission(ShowActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
  // 申请CAMERA权限
  ActivityCompat.requestPermissions(ShowActivity.this, new String[]{Manifest.permission.CAMERA}, 1);
 }else{
  //跳转到zxing的扫描页面
  // 打开扫描界面扫描条形码或二维码
  Intent openCameraIntent = new Intent(ShowActivity.this, CaptureActivity.class);
  startActivityForResult(openCameraIntent, 0);
 }
}
  });
  //根据输入的字符串生成二维码
  generateQRCodeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
 //1读et的内容 2生成bitmap 3设置给iv
 String contentString = qrStrEditText.getText().toString();
 if (!TextUtils.isEmpty(contentString)) {
  // 根据字符串生成二维码图片并显示在界面上,第二个参数为图片的大小(350*350)
  Bitmap qrCodeBitmap = EncodingUtils.createQRCode(contentString, 350, 350,mCheckBox.isChecked() ? BitmapFactory.decodeResource(getResources(), R.drawable.ac3
  ) : null);
  qrImgImageView.setImageBitmap(qrCodeBitmap);
 } else {
  Toast.makeText(ShowActivity.this, "Text can not be empty", Toast.LENGTH_SHORT).show();
 }
}
  });
 }


 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  //接受zixing扫描页面的字符串扫描结果
  if (resultCode == RESULT_OK) {
Bundle bundle = data.getExtras();
String scanResult = bundle.getString("result");
resultTextView.setText(scanResult);
  }
 }

 //用户是否同意权限的回调
 @Override
 public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
  super.onRequestPermissionsResult(requestCode, permissions, grantResults);

  //如果同意直接打开相机
  //跳转到zxing的扫描页面
  // 打开扫描界面扫描条形码或二维码
  Intent openCameraIntent = new Intent(ShowActivity.this, CaptureActivity.class);
  startActivityForResult(openCameraIntent, 0);
 }
}
点击复制链接 与好友分享!回本站首页
上一篇:git命令怎么查看用户名和修改用户名
下一篇:Cordova配置入门教程
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站