二维码扫描的一些代码

// 扫描、生成二维码

// 扫描按钮布局文件
<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);
	}
} 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值