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

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



   



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

二维码开源包zxing的jar包的引入_第1张图片

二维码开源包zxing的jar包的引入_第2张图片

复制后

                 二维码开源包zxing的jar包的引入_第3张图片

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

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

直接复制过去就好了

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

二维码开源包zxing的jar包的引入_第4张图片

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

二维码开源包zxing的jar包的引入_第5张图片

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

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

修改前

修改后


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

修改前

二维码开源包zxing的jar包的引入_第6张图片

修改以后

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

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

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

二维码开源包zxing的jar包的引入_第7张图片

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

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

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

直接复制过来,如图

二维码开源包zxing的jar包的引入_第8张图片

修改如图



大功告成!!!


附上一些简单测试代码,

MainActivity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:orientation="vertical">


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:id="@+id/textViewId"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="BarCodeScanner"
        android:text="进入扫描"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextId"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/createBarCodeId"
        android:onClick="createBarCode"
        android:text="生成二维码"/>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageViewId"/>

</LinearLayout>

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();
            }
        }
    }
}




你可能感兴趣的:(二维码开源包zxing的jar包的引入)