第一步:需要引入libzxing工程
选择菜单:File/new/import module
第二步:将libzxing工程引入到项目中
右键项目选择菜单open module settings
选择app/ dependencies/+加号/Module dependencies,把libzxing选择并添加进去
选择菜单:File/new/import module
第二步:将libzxing工程引入到项目中
右键项目选择菜单open module settings
选择app/ dependencies/+加号/Module dependencies,把libzxing选择并添加进去
注意:引入后我们不需要手工添加CAMERA、VIBRATE的权限,因为我们引入的libzxing模块的AndroidManifest.xml中已经帮我们添加好需要的权限
在程序里调用
startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class),0);
- package cq.cake.libzxing;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.view.View;
- import android.widget.CheckBox;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.TextView;
- import com.xys.libzxing.zxing.activity.CaptureActivity;
- import com.xys.libzxing.zxing.encoding.EncodingUtils;
- /**
- * 二维码工具,libzxing的使用
- */
- public class MainActivity extends AppCompatActivity {
- private TextView tvResult;
- private EditText etText;
- private ImageView iv2Code;
- private CheckBox checkLogo;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- initView();
- }
- private void initView() {
- tvResult = (TextView) findViewById(R.id.tv_result);
- etText = (EditText) findViewById(R.id.et_text);
- iv2Code = (ImageView)findViewById(R.id.iv_2code);
- checkLogo = (CheckBox) findViewById(R.id.cb_logo);
- }
- /**
- * 开启二维码扫描
- * @param view
- */
- public void scan(View view){
- startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class),10001);
- }
- /**
- * 得到二维码扫描返回的数据
- * @param requestCode
- * @param resultCode
- * @param data
- */
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (resultCode==RESULT_OK){
- Bundle bundle = data.getExtras();
- String result = bundle.getString("result");
- tvResult.setText(result);
- }
- }
- /**
- * 生成二维码
- * @param view
- */
- public void build2Code(View view){
- //生成一个宽高500的二维码,根据是否选中logo,来确定是否添加logo
- Bitmap qrCode = EncodingUtils.createQRCode(etText.getText().toString(), 500, 500, checkLogo.isChecked() ? BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher) : null);
- iv2Code.setImageBitmap(qrCode);
- }
- }