首页 > 安全资讯 >

二维码开源包zxing的jar包的引入分析

16-04-02

1、解压BarCodeTest,将该BarCodeTest工程打开之后,将libs下的jar包全部复制在新的工程libs下,然后同步 2、资源文件中的数据复制在新的工程res下,(layout、raw、values下的ids xml,依次复制在对

1、解压BarCodeTest,将该BarCodeTest工程打开之后,将libs下的jar包全部复制在新的工程libs下,然后同步

 

 

 

 

2、资源文件中的数据复制在新的工程res下,(layout、raw、values下的ids.xml,依次复制在对应的目录下)

复制后

3、复制BarCodeTest中res下的values下的colors中的所有颜色全部复制在对应新的工程中的对应的相应的colors文件中。记住不要去替换。

4、将BarCodeTest中的AndroidManiFest.xml中所有权限复制在新的工程的AndroidManiFest.xml文件中

直接复制过去就好了

5、复制src目录下的com下的zxing目录到新的工程中的java目录中,记住一定要选择main/java这个目录

6、首先,需要修改的当前的错误ViewfinderView文件中的错误,直接删除错误的导包,让它自动导入新的包

把灰色的导包删除,然后Android Studio会自动导入正确的包

7、在新的工程中的layout下的camera.xml中去更改ViewfinderView的目录,去掉com就可以,并删除掉textView里面的背景错误

修改前

修改后

 

删除掉textView里面的背景错误;

修改前

修改以后

8、打开zxing包下的activity包中CaptureActivity,删除错误的导包,然后重新导包,根据错误的类,去查找到decoding包下的相应类,然后跟改改类中的错误的导包,然后重新导包。依次查找到错误的类,然后删除掉错误的导包,导入新的包。

可能出现错误的类是CaptureActivity--->CaptureActivityHandler-->DecodeThread--->DecodeHandler依次更具错误的的类找就好了

(1)删除灰色的错误导包、系统会自动导入正确的包

(2)找下一个错误类,根据CaptureActivity.java中的错误找,找到了错误的类CaptureActivityHandler.java

继续删除错误导包,依次修改错误类,直到没有一个类是错误的

9、在manifest文件中添加CaptureActivity的配置、 注意每一个包下的内容都要没错误 ,才算配置成功。

直接复制过来,如图

修改如图

 

大功告成!!!

 

附上一些简单测试代码,

 

MainActivity.xml

 

 




    


 

MainActivity.java
package com.afang.mybarcodedemo2; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import com.google.zxing.WriterException; import zxing.activity.CaptureActivity; import zxing.encoding.EncodingHandler; public class MainActivity extends AppCompatActivity { private TextView textView; private ImageView imageView; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = ((TextView) findViewById(R.id.textViewId)); imageView = ((ImageView) findViewById(R.id.imageViewId)); editText = ((EditText) findViewById(R.id.editTextId)); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==0) { if(data!=null) { String result = data.getStringExtra("result"); textView.setText(result); } } } /** * 跳转到扫描页面 * @param view */ public void BarCodeScanner(View view) { startActivityForResult(new Intent(this, CaptureActivity.class),0); } /** * 生成二维码 * @param view */ public void createBarCode(View view) { String content = editText.getText().toString().trim(); if(content!=null&&content.length()>0) { try { /** * 第一个参数:生成二维码内容的字符串 * 第二个参数:二维码的宽,高 */ Bitmap qrCodeBitmap = EncodingHandler.createQRCode(content,500); if(qrCodeBitmap!=null) { imageView.setImageBitmap(qrCodeBitmap); } } catch (WriterException e) { e.printStackTrace(); } } } } 


 

 

 

 
相关文章
最新文章
热点推荐