// 扫描、生成二维码
// 扫描按钮布局文件
<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);
}
}
二维码扫描的一些代码
最新推荐文章于 2024-08-11 17:21:55 发布