• Andoid studio 使用Zxing扫描二维码


    原文:http://blog.csdn.net/qq_30379689/article/details/52411489

    (为了自己看的懂,自己在原文的基础上略做改动)

    作为Google开源框架Zxing,里面的文件很大,这里主要讲的是精简ZXing项目后只保留扫描功能的代码,可以缩小项目的大小,对于只要扫描功能的项目已经够用了。扫描后的结果,只要通过WebView百度一下就出来了。简单的说,可以把Zxing这个二维码扫描功能当做一个第三方服务来使用,本篇文章分为两部分,Zxing的集成和Zxing的使用

    一:下载我们所需要的Zxing精简版,在Github上搜索Zxing,看到这条记录,然后下载。

    百度网盘下载:链接:http://pan.baidu.com/s/1c12ybh2 密码:bpix

    二:复制到项目中,在ZXingProj/src/com/dtr目录下,复制这个zxing文件夹到我们的项目中

     编译一下就会发现一堆错误,下面我们就去改错误。

     

     三、复制zxing.jar包到libs

    右键点击该jar包,选择add as library ,(下面这张图是从别人博客中copy来的,我自己做的时候没看到这张图)

    四、复制下载的res的layout文件、res的values的ids文件、raw文件夹、res的drawable-xhdpi文件夹到我们项目的对应位置

    五、重新导入文件,记得删除原先的R包,换成自己项目的R包 

    修改为:

     

    全部修改完重新编译无错误

    六.声明权限和Activity

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.sdtimoniyor.ticketsystem">
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.FLASHLIGHT" />
    
        <uses-feature android:name="android.hardware.camera" />
        <uses-feature android:name="android.hardware.camera.autofocus" />
    
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            
            <activity
                android:name=".zxing.activity.CaptureActivity"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Black.NoTitleBar" />
            <activity
                android:name=".zxing.activity.ResultActivity"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Black.NoTitleBar" />
        </application>
    
    </manifest>

    七、启动

    Button qrcode=(Button)findViewById(R.id.qr_code);
            qrcode.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent=new Intent(MainActivity.this, CaptureActivity.class);
                    startActivity(intent);
                }
            });

    八、Test

     我擦,这是什么鬼,回去一看权限也加了啊

    九、修改,添加运行时权限

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button qrcode=(Button)findViewById(R.id.qr_code);
    qrcode.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    if(ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.CAMERA)!=
    PackageManager.PERMISSION_GRANTED){
    ActivityCompat.requestPermissions(MainActivity.this,
    new String[]{Manifest.permission.CAMERA},1);
    }
    else{
    Intent intent=new Intent(MainActivity.this,CaptureActivity.class);
    startActivity(intent);
    }
    }
    });
    }
    }

     

     十、真机测试

     

  • 相关阅读:
    poj 2947 Widget Factory 夜
    poj 1222 EXTENDED LIGHTS OUT 夜
    poj 3440 Coin Toss 夜
    poj 1166 The Clocks 夜
    poj 3270 Cow Sorting 夜
    poj 3071 Football 夜
    poj 2409 Let it Bead 夜
    poj 1141 Brackets Sequence 夜
    hdu 4311 Meeting point1 夜
    poj 1026 Chipher 夜
  • 原文地址:https://www.cnblogs.com/jarekpierre/p/10900734.html
Copyright © 2020-2023  润新知