最近项目要根据后台传递的string字符串等生成相应的条形码,供客户条码扫描枪机进行扫描识别.
以下是自己写的代码,已实现上述功能,代码仅供参考:
MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private static final String TAG = "MainActivity";
private int REQUEST_CODE_SCAN = 111;
/**
* 将要生成二维码的内容
*/
private EditText codeEdit;
/**
* 生成二维码代码
*/
private Button twoCodeBtn;
/**
* 用于展示生成二维码的imageView
*/
private ImageView codeImg;
/**
* 生成一维码按钮 scanner
*/
private Button oneCodeBtn;
/**
* 二维码扫描
*/
private Button scannerBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
initView();
setListener();
}
/**
* 用于初始化界面展示的view
*/
private void initView() {
codeEdit = (EditText) findViewById(R.id.code_edittext);
twoCodeBtn = (Button) findViewById(R.id.code_btn);
oneCodeBtn = (Button) findViewById(R.id.btn_code);
scannerBtn = (Button) findViewById(R.id.scanner);
codeImg = (ImageView) findViewById(R.id.code_img);
}
/**
* 设置生成二维码和扫描二维码的事件
*/
private void setListener() {
twoCodeBtn.setOnClickListener(this);
oneCodeBtn.setOnClickListener(this);
scannerBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_code://一维码
oneCodeCreate();
break;
case R.id.code_btn://二维码
twoCodeCreate();
break;
case R.id.scanner:{
AndPermission.with(this).permission(Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE).callback(new PermissionListener() {
@Override
public void onSucceed(int requestCode, @NonNull List<String> grantPermissions) {
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
/*ZxingConfig是配置类 可以设置是否显示底部布局,闪光灯,相册,是否播放提示音 震动等动能
* 也可以不传