二維碼掃描,生成
阿新 • • 發佈:2018-12-20
首先是生成預設二維碼頁面
在點選事件裡跳轉到預設二維碼
case R.id.but1:
//開啟預設二維碼掃描頁面
Intent intent = new Intent(MainActivity.this,CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE);
break;
這裡需要回傳值
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); /* 開啟掃一掃掃描解析圖片 */ if(requestCode==REQUEST_CODE){ if(data!=null){ Bundle bundle=data.getExtras(); if(bundle==null){ return; }//判斷解析是否成功 if(bundle.getInt(CodeUtils.RESULT_TYPE)==CodeUtils.RESULT_SUCCESS){ String result=bundle.getString(CodeUtils.RESULT_STRING); Toast.makeText(this, "解析結果:" + result, Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this, "解析二維碼失敗", Toast.LENGTH_LONG).show(); } } } }
效果圖
生成二維碼
如果想自己生成一個二維碼圖片,新定義一個activity,進行跳轉
case R.id.but4:
//生成自定義二維碼頁面
startActivity(new Intent(MainActivity.this,Main2Activity.class));
break;
到新的activity
輸入文字框內容,進行生成二維碼操作
public class Main2Activity extends AppCompatActivity implements View.OnClickListener { private EditText edit; private Button addlog; private Button nolog; private Bitmap mMBitmap; private ImageView QRcode; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); initView(); } private void initView() { edit = (EditText) findViewById(R.id.edit); addlog = (Button) findViewById(R.id.addlog); nolog = (Button) findViewById(R.id.nolog); addlog.setOnClickListener(this); nolog.setOnClickListener(this); QRcode = (ImageView) findViewById(R.id.QRcode); } @Override public void onClick(View v) { switch (v.getId()) { //帶log的二維碼 case R.id.addlog: //輸入要生成二維碼內容 String textString = edit.getText().toString().trim(); if (TextUtils.isEmpty(textString)) { Toast.makeText(Main2Activity.this, "您的輸入為空!", Toast.LENGTH_SHORT).show(); return; } //開始生成二維碼 edit.setText(""); mMBitmap = CodeUtils.createImage(textString, 400, 400, BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)); QRcode.setImageBitmap(mMBitmap); break; case R.id.nolog://不帶log的二維碼 String textString2 = edit.getText().toString().trim(); if (TextUtils.isEmpty(textString2)) { Toast.makeText(Main2Activity.this, "您的輸入為空!", Toast.LENGTH_SHORT).show(); return; } //開始生成二維碼 edit.setText(""); mMBitmap = CodeUtils.createImage(textString2, 400, 400, null); QRcode.setImageBitmap(mMBitmap); break; } } }
效果圖如下