二维码的生成与解析
二维码的生成与解析
passengers 发表于7个月前
二维码的生成与解析
  • 发表于 7个月前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

摘要: Android

二维码的生成与解析 首先需要先下载框架包和代码

Zxing里面是二维码的核心代码,下载完以后我们需要将core.jar导入到项目中,同时将zxing里面的代码复制到java里面:

复制完以后,注意改正zxing里面的错误信息(导包,记得要删除原来错误的引入包) 我们除了需要一个mainActivity之外,还需要写一个xml页面用来做照相机的调用,这个页面我们需要用到zxing里面的自定义控件: <SurfaceView android:id="@+id/preview_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" />

<zxing.view.ViewfinderView //如果是从实例代码中复制过来的,千万要记得改正它的路径 android:id="@+id/viewfinder_view" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:orientation="vertical" >

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerInParent="true"
    android:gravity="center"
    android:paddingBottom="10dp"
    android:paddingTop="10dp"
    android:text="扫描中……"
    android:textColor="[@android](https://my.oschina.net/asia):color/white"
    android:textSize="18sp"
    android:textStyle="bold" />

<Button
    android:id="@+id/btn_cancel_scan"
    android:layout_width="230dp"
    android:layout_height="40dp"
    android:layout_alignParentBottom="true"
    android:layout_centerInParent="true"
    android:layout_marginBottom="75dp"
    android:text="取消"
    android:textSize="15sp"
    android:textStyle="bold" />

</RelativeLayout>

二维码的生成,在点击事件里: public void onClick(View v) { try { String contentString = qrStrEditText.getText().toString(); if (!contentString.equals("")) {

        Bitmap qrCodeBitmap = EncodingHandler.createQRCode(contentString, 350);
        qrImgImageView.setImageBitmap(qrCodeBitmap);	//将生成的二维码放入Activity里面的ImageView控件里
    }else {
        Toast.makeText(MainActivity.this, "请输入想要生成二维码的值", Toast.LENGTH_SHORT).show();
    }

} catch (WriterException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

} 二维码的扫描与解析: public void onClick(View v) { Intent openCameraIntent = new Intent(MainActivity.this,CaptureActivity.class); startActivityForResult(openCameraIntent, 0);//直接调用zxing里面的页面 } 然后获取返回码(这个方法要写在onCreate外面): protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK) {
    Bundle bundle = data.getExtras();
    String scanResult = bundle.getString("result");
    resultTextView.setText(scanResult);
}

} //获取返回码,将二维码解析出来的结果放入TextView控件中

最后,记得要加权限和设置清单文件---->

<uses-permission android:name="android.permission.VIBRATE" /> <!-- 震动权限 --> <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" /> <!-- 使用照相机权限 --> <uses-feature android:name="android.hardware.camera.autofocus" /> <!-- 自动聚焦权限 -->

由于在zxing里面已经有了一个Activity,所以我们要在清单文件里配置一下(加在application里面): <activity android:configChanges="orientation|keyboardHidden" android:name="zxing.activity.CaptureActivity" //千万要记得要配置好路径 android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="stateAlwaysHidden"></activity>

共有 人打赏支持
粉丝 0
博文 7
码字总数 2822
×
passengers
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: