Android快速SDK(15)二维码扫描Scanner【傻瓜模式】

代码:http://download.csdn.net/detail/huangbin95487710/9260261

依赖包模式

完整运行还需要用到以下依赖包

基于zxing.jar库升级封装成傻瓜模式

  1. 二维码启动类,请复制到目标项目
    • package cn.whonow.whonow.scanner;
      
      import General.Scanner.Decoding.Scanner;
      import android.app.Activity;
      import android.content.Context;
      import android.content.Intent;
      import android.os.Bundle;
      import android.view.View;
      import android.view.View.OnClickListener;
      import android.widget.TextView;
      import cn.whonow.whonow.R;
      
      /**
       * 初始化二维码拍照
       * 
       * @author HuangYi QQ:95487710
       */
      public class ScannerActivity extends Activity {
      
      	public static void startScannerActivity(Context context) {
      		Intent intent = new Intent();
      		intent.setClass(context, ScannerActivity.class);
      		context.startActivity(intent);
      	}
      
      	public static void startScannerActivity(Context context, int mStyles) {
      		Intent intent = new Intent();
      		intent.putExtra(KEY_STYLES, mStyles);
      		intent.setClass(context, ScannerActivity.class);
      		context.startActivity(intent);
      	}
      
      	public static void startScannerActivity(Context context, int mStyles,
      			int mLayoutID) {
      		Intent intent = new Intent();
      		intent.putExtra(KEY_STYLES, mStyles);
      		intent.putExtra(KEY_LAYOUT, mLayoutID);
      		intent.setClass(context, ScannerActivity.class);
      		context.startActivity(intent);
      	}
      
      	private static final String KEY_STYLES = "key_styles";
      	private static final String KEY_LAYOUT = "key_layout";
      
      	private Scanner mScanner;
      	private int mStylesId;
      	private int mLayoutId;
      
      	/** Called when the activity is first created. */
      	@Override
      	public void onCreate(Bundle savedInstanceState) {
      		super.onCreate(savedInstanceState);
      
      		Bundle mBundle = getIntent().getExtras();
      		if (mBundle != null) {
      			mStylesId = mBundle.getInt(KEY_STYLES, -1);
      			mLayoutId = mBundle.getInt(KEY_LAYOUT, -1);
      		}
      		if (mLayoutId > 0)
      			setContentView(mLayoutId);
      		else
      			setContentView(R.layout.test_scanner);
      
      		mScanner = new Scanner(this, mStylesId);
      		
      		TextView open = (TextView) findViewById(R.id.scanner_open);
      		if (open != null) {
      			open.setOnClickListener(new OnClickListener() {
      
      				@Override
      				public void onClick(View v) {
      					// TODO Auto-generated method stub
      					mScanner.openCamera();
      				}
      
      			});
      		}
      
      		TextView close = (TextView) findViewById(R.id.scanner_close);
      		if (close != null) {
      			close.setOnClickListener(new OnClickListener() {
      
      				@Override
      				public void onClick(View v) {
      					// TODO Auto-generated method stub
      					mScanner.closeCamera();
      				}
      
      			});
      		}
      
      	}
      
      	@Override
      	protected void onResume() {
      		super.onResume();
      		if (mScanner != null) {
      			mScanner.onResume();
      		}
      
      	}
      
      	@Override
      	protected void onPause() {
      		super.onPause();
      		if (mScanner != null) {
      			mScanner.onPause();
      		}
      	}
      
      	@Override
      	protected void onDestroy() {
      		if (mScanner != null) {
      			mScanner.onDestroy();
      		}
      		super.onDestroy();
      	}
      
      }

  2. 属性
    • 设置摄像头视角宽与高
    • 设置摄像头视野外背景
    • 设置摄像头边框
    • 设置扫
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android平台上实现二维码扫描可以通过使用Zxing库来完成。以下是一个简单的步骤: 1. 添加Zxing库:首先,在项目的build.gradle文件中添加以下依赖项: ``` implementation 'com.google.zxing:core:3.4.0' implementation 'com.journeyapps:zxing-android-embedded:3.5.0' ``` 2. 创建扫描界面:在Android的布局文件中创建一个SurfaceView,用于显示相机预览,并添加一个按钮用于启动扫描: ``` <com.journeyapps.barcodescanner.DecoratedBarcodeView android:id="@+id/barcodeScannerView" android:layout_width="match_parent" android:layout_height="match_parent" /> <Button android:id="@+id/scanButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="扫描" /> ``` 3. 实现扫描逻辑:在Activity或Fragment中,获取扫描控件,设置回调监听器,并在按钮点击时启动扫描: ``` private DecoratedBarcodeView barcodeView; private Button scanButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); barcodeView = findViewById(R.id.barcodeScannerView); scanButton = findViewById(R.id.scanButton); scanButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { barcodeView.decodeSingle(new BarcodeCallback() { @Override public void barcodeResult(BarcodeResult result) { // 扫描结果回调 String barcodeValue = result.getText(); // 处理扫描结果 } @Override public void possibleResultPoints(List<ResultPoint> resultPoints) { // 可能的结果点回调 } }); } }); } @Override protected void onResume() { super.onResume(); barcodeView.resume(); } @Override protected void onPause() { super.onPause(); barcodeView.pause(); } ``` 通过以上步骤,Android应用就能实现二维码扫描功能。需要注意的是,还可以根据需求进行更多的扫描设置,比如设置扫描框、扫描类型等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值