加载google Z-Xing库实现二维码解析与生成,并将解析结果在另一页面显示
来源:互联网 发布:sql 安全策略 编辑:程序博客网 时间:2024/04/28 10:23
1、首先需要下载Z-Xing 库项目下载文档,可在http://download.csdn.net/detail/catchingsun/8903065进行下载;
2、解析二维码,并跳转至新建Activity,新建Activity放在和CaptureActivity.java同在的文件夹下,在源码的AndroidManifest.xml文件中存在需要获取的权限
3、新建Activity,并在新建Activity中载入CaptureActivity,并对扫描结果进行处理,将扫描得到的文本信息进行显示,如果为URL信息则调用默认浏览器打开
package com.zxing.activity;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.drawable.BitmapDrawable;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import com.ericssonlabs.R;import com.google.zxing.BinaryBitmap;import com.google.zxing.Result;import com.google.zxing.qrcode.QRCodeReader;public class AnalyseQRcode extends Activity {private final static int SCANNIN_GREQUEST_CODE = 1; static Activity analyseqrcode = null;//定义Activity变量,在主CaptureActivity中进行关闭private ImageView mResultiv;private TextView mLabeltv;private TextView mResulttv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.analyseqrcode);analyseqrcode = this;mLabeltv = (TextView) findViewById(R.id.labeltv);mResulttv = (TextView) findViewById(R.id.resulttv);mResultiv = (ImageView) findViewById(R.id.resultiv);Toast.makeText(AnalyseQRcode.this, "请将取景框对准二维码,准备开始扫描", 100).show();Intent startScan = new Intent(AnalyseQRcode.this, CaptureActivity.class);startActivityForResult(startScan, 0);//进入二维码解析界面}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);Bundle bundle = data.getExtras();String scanResult = bundle.getString("result");mResulttv.setText(scanResult);if (resultCode == RESULT_OK && !scanResult.equals("")) {if(scanResult.contains("http://")||((scanResult.contains(".com"))||(scanResult.contains(".cn")))){//判断是否为URL信息,如果是则打开连接Intent i = new Intent(Intent.ACTION_VIEW);//打开连接String url = scanResult;i.setData(Uri.parse(url));startActivity(i);} }}
若在其他工程中使用CaptureActivity可直接调用刚新建的Activity,解析结果将会返回给新建的Activity;如果要直接调用CaptureActivity并将结果返回当前Activity,可直接加入以下语句:
Toast.makeText(AnalyseQRcode.this, "请将取景框对准二维码,准备开始扫描", Toast.LENGTH_SHORT).show();Intent startScan = new Intent(AnalyseQRcode.this, CaptureActivity.class);startActivityForResult(startScan, 0);//进入二维码解析界面,扫描结果返回当前Activity
4、新建Activity的.xml文件
<pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#ffffff"> <TextView android:id="@+id/labeltv"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="扫描结果:"android:textSize="18dp" /> <TextView android:id="@+id/resulttv"<!--显示扫描结果的文本信息-->android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="18dp" /> <ImageView android:id="@+id/resultiv"android:layout_width="fill_parent"android:layout_height="wrap_content" /></LinearLayout>
注意:在使用多个工程作为Library时,如果出现错误,可能是 多个工程中R.layout文件夹中.xml文件同名,并且不能多个工程的libs文件夹下有同样的.jar包
5、生成二维码
package com.dachuang.daohang.qrcode;import com.dachuang.daohang.MainActivity;import com.dachuang.daohang.start.R;import com.dachuang.daohang.start.SelectLanguage;import com.google.zxing.WriterException;import com.zxing.encoding.EncodingHandler;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.HashMap;import java.util.Map;import java.util.Properties;import org.apache.http.util.EncodingUtils;import android.annotation.SuppressLint;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;public class SetQRcode<span> extends Activity {private ImageView setqrimg;private EditText setqret;private Bitmap setqrb;private Bitmap setqrb1;private Button setqrbtn;//private MIDIPlayer mIDIPlayer=null;private boolean mbMusic=false;private TextView mTextView = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.setqrcode);setqrbtn =(Button)findViewById(R.id.setqrbutton);setqrbtn.setOnClickListener( new setqrOnClickListener());setqrimg = (ImageView) findViewById(R.id.setqrimg);setqret = (EditText) findViewById(R.id.setqrtext);}//生成二维码public class setqrOnClickListener implements OnClickListener{@SuppressLint("SdCardPath") @Overridepublic void onClick(View v){String in = setqret.getText().toString();if(in.equals("")){Toast.makeText(SetQRcode.this, "请输入文本", Toast.LENGTH_SHORT).show();}else{try {setqrb=EncodingHandler.createQRCode(in,400);setqrimg.setImageBitmap(setqrb);} catch (WriterException e) {// TODO Auto-generated catch blocke.printStackTrace();}} }}}
6、生成二维码的 .xml文件
</pre><pre name="code" class="html"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_horizontal" tools:context="com.dachuang.daohang.MainActivity" tools:ignore="MergeRootFrame"> <EditText android:id="@+id/setqrtext" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="18sp" android:layout_marginTop="30dp" android:hint="请输入要编码的内容" /><Button android:id="@+id/setqrbutton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="生成二维码" /><ImageView android:id="@+id/setqrimg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /></LinearLayout>
0 0
- 加载google Z-Xing库实现二维码解析与生成,并将解析结果在另一页面显示
- xing生成二维码与解析二维码
- Google Zxing 二维码生成与解析
- 利用google Zxing 二维码生成与解析
- Google Zxing 二维码生成与解析
- Google Zxing 二维码生成与解析
- 二维码生成与解析
- 二维码生成与解析
- 二维码生成与解析
- 二维码生成与解析
- 二维码生成与解析代码实现
- 二维码生成与解析代码实现
- java二维码生成与解析代码实现
- 二维码生成与解析代码实现
- java二维码生成与解析代码实现
- java二维码生成与解析代码实现
- java二维码生成与解析代码实现
- java二维码生成与解析代码实现 .
- Java学习篇-------理解异常
- (linux服务器架构设计 金融行业CMS系统)第一篇 【规划思路】
- 最美 高铁火了 近5万人在芜乘 合福 出行
- thinkphp模型验证总结
- 对孩子,究竟什么才是适宜的爱?
- 加载google Z-Xing库实现二维码解析与生成,并将解析结果在另一页面显示
- 查看linux发行版本
- 水晶报表相关代码
- 数据库索引
- 判断ScrolllView是否滑动到底部和顶部
- magento学习索引
- LeetCode_104Maximum Depth of Binary Tree
- android ziputil
- Inline Assembly Intro - Register Mismatch