二维码扫描的一些代码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34781711/article/details/79964589
// 扫描、生成二维码

// 扫描按钮布局文件
<Relativelayout
	android:id="@+id/ll_title_address"
	android:layout_width="match_parent"
	android:layout_height="60dp"
	android:background="@color/red">
	
	<ImagiveView
		android:id="@+id/imgv_saoma"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_alignParentleft="true"
		android:layout_centerVertical="true"
		android:paddingBottom="2dp"
		android:paddingLeft="20dp"
		android:paddingRight="15dp"
		android:paddingTop="2dp"
		android:src="@drawable/imgv_saoma">
		
	...
	
</Relativelayout>

// 开启扫描类文件

public class SaoMa{
	
	@OnClick({R.id.imgv_saoma})
	public void btnClick(View view){
		switch(view.getId()){
			case R.id.imgv_saoma:
			if(PermissionsUtil.is6){// 如果安卓系统大于6
			// 开启相机
				PermissionsUtil.checkPermissionBy6(this, Mainfest.permission.CAMERA);
			} else if(PermissionsUtil.checkPermission(Mainfest.permission.CAMERA)){
				// 如果6.0以下授权了
				startActivity(MineScanAty.class, null);
			} else {
				showToast("未开启相机权限");
			}
		}
	}
}

// 扫描二维码布局文件,比较简单就两个
<?xml version="1.0" encoding="utf-8"?>
<Relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:app="http://schemas.android.com/apk/rea-auto"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:background="@color/app_bg">
	
	<cn.bingoogolapple.qrcode.zxing.ZXingView
		android:id="@+id/zxingview"
		android:layout_width="match_parent"
		android:layout_height="match_parent"
		android:layout_centerInParent="true"
		app:qrcv_animTime="1000"
		app:qrcv_borderColor="@android:color/white"
		app:qrcv_borderSize="1dp"
		app:qrcv_cornerColor="#98FC95"
		app:qrcv_cornerLength="20dp"
		app:qrcv_cornerSize="3dp"
		app:qrcv_maskColor="#33FFFFFF"
		app:qrcv_rectWidth="200dp"
		app:qrcv_scanLineColor="#98FC95"
		app:qrcv_sacnSize="1dp"
		app:qrcv_top0ffest="160dp"/>
		
	<ImagiveView
		android:id="@+id/iv_finish"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:padding="30dp"
		android:src="@drawable/iv_finish"/>

// 扫码的逻辑
public class MineScanAty extends BaseAty implements QRCCodeView.Delegate{
	
	@Bind(R.id.zxingview)
	QRCodeView mQRCodeView;
	
	@Bind(R.id.iv_finish)
	ImagiveView mIvFinish;
	
	@Override
	public int getLayoutId(){
		return R.layout.scan_code_layout;
	}
	
	@Override
	public void initData(){
		mQRCodeView.setResultHandler(this);
		mIvFinish.setOnClickListener(new View.OnClickListener(){
			@Override
			public void onClick(View v){
				finish();
			}
		});
	}
	
	@Override
	protected void onStart(){
		super.onStart();
		// 显示扫描框,并延迟1.5秒后开始识别
		mQRCodeView.startSpotAndShowRect();
	}
	
	@Override
	protected void onStop(){
		mQRCodeView.stopCamera();
		super.onStop();		
	}
	
	// 假如扫描成功了
	@Override
	public void onScanQRCodeSuccess(String result){
		Log.i("result","result="+result);
		// 收摊子
		mQRCodeView.stopSpotAndHiddenRect();
		showLoadingDialog(null);
		// 上传扫到的结果
		doHttp(RetrofitUtils.createApi(ModileApi.class).scan(UserManager.getUserId(), result), 1);
		finish();
	}
	
	// 上传解析成功
	@Override
	public void onSuccess(String result, Call<ResponseBody> call, Response<ResponseBody> response, int what){
		showToast("成功!");
		finish();
		super.onSuccess(result, call, response, what);
	}
} 


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页