导入依赖
compile ‘cn.yipianfengye.android:zxing-library:2.2’
权限
震动权限
入口函数配置 注册清单别忘
package com.bwie.qrcodedemo;
import android.app.Application;
import com.uuzuche.lib_zxing.activity.ZXingLibrary;
/**
* Created by stephen on 2017/12/4.
*/
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//初始化二维码扫描库
ZXingLibrary.initDisplayOpinion(this);
}
}
主函数///
package com.example.qrcodedemo;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import com.uuzuche.lib_zxing.activity.CaptureActivity;
import com.uuzuche.lib_zxing.activity.CodeUtils;
public class MainActivity extends AppCompatActivity {
private ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView) findViewById(R.id.img);
}
// 识别二维码
public void t1(View view){
Intent intent=new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent,1);
}
//识别图片中的二维码
public void t2(View view){
//跳转到手机相册的隐式意图
Intent intent=new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(intent,2);
}
//生成二维码
public void t3(View view){
Bitmap bit=CodeUtils.createImage("44444",300,300,null);
img.setImageBitmap(bit);
}
//生成logo二维码
public void t4(View view){
Bitmap bit=CodeUtils.createImage("logo",400,400, BitmapFactory.decodeResource(getResources(),R.drawable.a1));
img.setImageBitmap(bit);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1){
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(MainActivity.this,result,Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this,"解析失败",Toast.LENGTH_SHORT).show();
}
}
}else if(requestCode==2){
if(null!=data){
//处理扫描图片的结果
Uri uri=data.getData();
//得到图片路劲进行解析
try{
CodeUtils.analyzeBitmap(ImageUtil.getImageAbsolutePath(this, uri), new CodeUtils.AnalyzeCallback() {
@Override
public void onAnalyzeSuccess(Bitmap mBitmap, String result) {
Toast.makeText(MainActivity.this,"解析结果"+result,Toast.LENGTH_SHORT).show();
}
@Override
public void onAnalyzeFailed() {
Toast.makeText(MainActivity.this,"解析图片失败",Toast.LENGTH_SHORT).show();
}
});
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}