1.倒依赖
compile 'cn.yipianfengye.android:zxing-library:2.1'
2.权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
3.Applocation注册
public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); ZXingLibrary.initDisplayOpinion(this); }
}4.代码中
public class MainActivity extends AppCompatActivity { private final int REQUEST_CODE = 1; public static final int REQUEST_IMAGE = 112; private ImageView pic; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.button); Button button1 = (Button) findViewById(R.id.button1); Button button2 = (Button) findViewById(R.id.button2); Button button3 = (Button) findViewById(R.id.button3); pic = (ImageView) findViewById(R.id.pic); //扫描二维码 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, CaptureActivity.class); startActivityForResult(intent, REQUEST_CODE); } }); //扫描手机相册二维码 button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); startActivityForResult(intent, REQUEST_IMAGE); } }); //生成二维码 button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Bitmap mBitmap = CodeUtils.createImage("https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=439462059,3529812351&fm=23&gp=0.jpg", 400, 400, null); pic.setImageBitmap(mBitmap); } }); //自定义生成二维码设置Log头像 button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Bitmap mBitmap = CodeUtils.createImage("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3193006289,3802606706&fm=23&gp=0.jpg", 400, 400, BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)); pic.setImageBitmap(mBitmap); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE) { //处理扫描结果(在界面上显示) if (null != data) { 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();//WebActivity类web进行展示
Intent intent =new Intent(MainActivity.this,WebActivity.class); intent.putExtra("url",result); startActivity(intent); } else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) { Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show(); } } } if (requestCode == REQUEST_IMAGE) { if (data != null) { Uri uri = data.getData(); ContentResolver cr = getContentResolver(); try { Bitmap mBitmap = MediaStore.Images.Media.getBitmap(cr, uri);//显得到bitmap图片 CodeUtils.analyzeBitmap(ImageUtils.getImageAbsolutePath(MainActivity.this,uri), new CodeUtils.AnalyzeCallback() { @Override public void onAnalyzeSuccess(Bitmap mBitmap, String result) { Toast.makeText(MainActivity.this, "解析结果:" + result, Toast.LENGTH_LONG).show(); Intent intent =new Intent(MainActivity.this,WebActivity.class); intent.putExtra("url",result); startActivity(intent); } @Override public void onAnalyzeFailed() { Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show(); } }); if (mBitmap != null) { mBitmap.recycle(); } } catch (Exception e) { e.printStackTrace(); } } } } }