package com.example.jinzhe.erweima; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; import android.view.View; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import java.io.UnsupportedEncodingException; import qf.qrlibrary.CaptureActivity; import zxing.encoding.EncodingHandler; public class MainActivity extends AppCompatActivity { private TextView mTvQrShow; private EditText mEtCodeContent; private ImageView mIvShow; private static final int REQUEST_CODE =1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTvQrShow = (TextView) findViewById(R.id.tv_qr_show); mEtCodeContent = (EditText) findViewById(R.id.et_code_content); mIvShow = (ImageView) findViewById(R.id.iv_show); } public void onclick(View view) { switch (view.getId()){ case R.id.btn_qr_code://扫描二维码 Intent intent = new Intent(MainActivity.this, CaptureActivity.class); startActivityForResult(intent,REQUEST_CODE); break; case R.id.btn_create_code://生成二维码 /** * 原理 :首先将数据变成矩阵形式 * BitMatrix matrix = new MultiFormatWriter().encode(str, BarcodeFormat.QR_CODE, widthAndHeight, widthAndHeight); * 将矩阵里有数据的地方 填充黑颜色 ,把填充颜色的矩阵变成一维数组 * * 生成一个空白图片 * 将一维数组里的颜色 填充到 空白图片 * * */ String content = mEtCodeContent.getText().toString().trim(); try { //解决中文乱码的编码 content = new String(content.getBytes("UTF-8"),"ISO-8859-1"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } Bitmap bitmap = EncodingHandler.createQRCode(content, 400); if(bitmap!=null){ mIvShow.setImageBitmap(bitmap); }else{ Toast.makeText(MainActivity.this,"编码失败",Toast.LENGTH_SHORT).show(); } break; case R.id.btn_txm: // 条形码 数值 123456... String contentBar = mEtCodeContent.getText().toString().trim(); Bitmap bitmap1 = EncodingHandler.creatBarcode(MainActivity.this, contentBar, 450, 200, false); mIvShow.setImageBitmap(bitmap1); break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode ==RESULT_OK){//判断返回码 if(requestCode == REQUEST_CODE){//判断请求码 //获取二维码内容 String content = data.getExtras().getString(CaptureActivity.RESULT); if(!TextUtils.isEmpty(content)){ mTvQrShow.setText(content); } } } } }
二维码的生成和扫描
最新推荐文章于 2024-11-22 16:21:16 发布