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

依赖包模式

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

  • Android快速SDK(4)对话框AlertDialog

基于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. */@Overridepublic 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);elsesetContentView(R.layout.test_scanner);mScanner = new Scanner(this, mStylesId);TextView open = (TextView) findViewById(R.id.scanner_open);if (open != null) {open.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmScanner.openCamera();}});}TextView close = (TextView) findViewById(R.id.scanner_close);if (close != null) {close.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmScanner.closeCamera();}});}}@Overrideprotected void onResume() {super.onResume();if (mScanner != null) {mScanner.onResume();}}@Overrideprotected void onPause() {super.onPause();if (mScanner != null) {mScanner.onPause();}}@Overrideprotected void onDestroy() {if (mScanner != null) {mScanner.onDestroy();}super.onDestroy();}}

  2. 属性
    • 设置摄像头视角宽与高
    • 设置摄像头视野外背景
    • 设置摄像头边框
    • 设置扫描线颜色
    • 设置扫描线高度
    • 设置扫描线移动速度
    • 设置摄像头是否全屏
    • 设置摄像头摄像比例
    • 支持远近镜头扫描
    •                                                                                                                                                                                                                                                                                                                                                                                                                         

    • 默认样式
    •      
  3. AndroidManifest.xml添加配置
    •                                                         

  4. 添加混淆,详见依赖包proguard.cfg
  5. 复制以下的XML文件到目标项目,在保持ID不变下,可任意更改界面
    • <?xml version="1.0" encoding="utf-8"?>                                                

  6. 代码示例
    • 布局
    • <?xml version="1.0" encoding="utf-8"?>    

    • 自定义样式
    • <?xml version="1.0" encoding="utf-8"?>                                

    • 代码
    • package cn.whonow.whonow.scanner;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import cn.whonow.whonow.R;/** * 二维码扫描测试 *  * @author HuangYi QQ:95487710 */public class ScannerMainActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.test_scanner_main);Button button1 = (Button) findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {ScannerActivity.startScannerActivity(ScannerMainActivity.this);}});Button button2 = (Button) findViewById(R.id.button2);button2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 更改摄像样式ScannerActivity.startScannerActivity(ScannerMainActivity.this,R.style.MyDivScannerCamera);}});Button button3 = (Button) findViewById(R.id.button3);button3.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 更改边框样式ScannerActivity.startScannerActivity(ScannerMainActivity.this,-1, R.layout.test_scanner_div);}});}}

  7. 效果图


更多相关文章

  1. Android中有用的组件被选中和按下去的变换样式
  2. 关于设置activity样式
  3. 【译】Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner
  4. android常用样式
  5. Eclipse 默认打开Android(安卓)xml 布局
  6. Android(安卓)TextInputLayout 使用及其属性
  7. Android实现为GridView添加边框效果
  8. android 加边框
  9. Android多媒体扫描过程(Android(安卓)Media Scanner Prosess)

随机推荐

  1. 通过kuboard更新镜像版本
  2. Fatal: (vsim-3381) obsolete library fo
  3. 云计算第一阶段学习汇总
  4. DML(data manipulation language)
  5. DLC
  6. 备份实战案例1
  7. 备份实战案例2
  8. shell编程及自动化运维----变量
  9. 1. 实例演示Ajax的get,post请求; 2. 练习
  10. 其他空间类的引用,别名引用,自动加载类,数据