Android自定义Zxing扫一扫

来源:互联网 发布:动漫咨询的软件 编辑:程序博客网 时间:2024/05/12 16:35

Android自定义Zxing扫一扫

一、Zxing开源下载:http://code.google.com/p/zxing/  注:要开VPN才能下载

二、Zxing源码文件说明

1. com.google.zxing.client.android.Camera基于Camera调用以及参数配置,核心包

2. DecodeFormatManager、DecodeThread、DecodeHandler基于解码格式、解码线程、解码结果处理的解码类

3. ViewfinderView、ViewfinderResultPointCallBack基于取景框视图定义的View类

4. CaptureActivity、CaptureActivityHandler基于扫描Activity以及扫描结果处理的Capture类

5. InactivityTimer、BeepManager、FinishListener基于休眠、声音、退出的辅助管理类

6. Intents、IntentSource、PrefrencesActivity基于常量存储的常量类

三、Zxing jar包下载http://repo1.maven.org/maven2/com/google/zxing/core/ 在其中可以选择不同版本的jar

四、文章所需资源地址:http://download.csdn.net/download/binjianliu/10000296

   在其中有jar包和所使用的Zxing的源码类文件(做了小的改变),改变了扫描方式为竖屏扫描,扫描框的大小,显示文字的设置等。

五、实现

1. 将在四种下载的文件依次放入项目中(app、camera、decode、view)这几个文件夹放入关于Zxing的包下;会报红,先不急着修改

2. jar文件夹下的jar包放入libs文件夹下

3. drawable下的文件放入项目中的drawable中

4. mipmap-hdpi下的文件放入项目中的mipmap-hdpi中

5. capture.xml文件放入layout文件夹下

6. 在项目res下新建raw文件夹,将beep.ogg文件放入其中

7. ids.xml文件 放入values文件夹下;colors.xml文件中的内容复制粘贴到项目的colors.xml文件中

8. 在清单文件中注册Activity并添加权限

<activity android:name=".zxing.app.CaptureActivity"/><activity android:name=".zxing.app.PreferencesActivity"/>

<uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.VIBRATE" /><uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.INTERNET" />

9. 针对1中导入的文件,更换其导包,使用你自己的包名。如要继续修改,可根据文件中的注释修改

10. MainActivity.java中调用扫一扫,布局文件里面就两个TextView,一个做扫一扫点击,一个现实扫描结果

public class MainActivity extends Activity {    private static final int REQUEST_CODE_SCAN = 1;    private static final String DECODED_CONTENT_KEY = "result";    private TextView mZxingScan;    private TextView mZxingResult;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mZxingScan = (TextView) findViewById(R.id.zxing_scan);        mZxingResult = (TextView) findViewById(R.id.zxing_result);        mZxingScan.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //跳转到扫描界面                Intent intent = new Intent(MainActivity.this,CaptureActivity.class);                startActivityForResult(intent, REQUEST_CODE_SCAN);            }        });    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        // 扫描二维码/条码回传        if (requestCode == REQUEST_CODE_SCAN && resultCode == RESULT_OK) {            if (data != null) {                String content = data.getStringExtra(DECODED_CONTENT_KEY);                mZxingResult.setText("扫一扫结果: \n" + content);            }        }    }}

 

 

阅读全文
0 0
原创粉丝点击