android 条码识别软件开发全解析(续1详解)
前天我发了一篇关于android开发条码识别软件应用程序的博客,没想到竟很受关注。
我也挺受鼓舞的,好吧,我接上次的博客继续往下写。
前篇有人讲我写的没有实质内容,我接受建议,这里我就带大家体验一下最简单最直接的完美体验。
编写你的第一个android条码识别程序。zxing的简单使用!
第一步:下载zxing组件:我上篇也简单介绍了一下这个组件,这里也不啰嗦了。
下载两个东东
源码和文档说明:
地址下如
http://code.google.com/p/zxing/downloads/detail?name=ZXing-1.6.zip&can=2&q=
BarcodeScanner3.5.apk这个是编译好的一个可安装的apk程序!这个后面将用到。
地址如下
http://code.google.com/p/zxing/downloads/detail?name=BarcodeScanner3.51b1.apk&can=2&q=
第二步:
模拟器已完全打开后
安装BarcodeScanner3.5.apk
cmd中cd 到sdk目录
利用adb命令安装BarcodeScanner3.5.apk
adb install BarcodeScanner3.5.apk 所在目录,请确定安装成功了。
第三步:ok 终于到编码了!
代码
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
publicclass MyTest extends Activity {
/** Called when the activity is first created. */
private TextView tv;
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mytest);
tv=(TextView) findViewById(R.id.mytxt);
findViewById(R.id.mybtn).setOnClickListener(listener);
}
public Button.OnClickListener listener=new Button.OnClickListener(){
publicvoid onClick(View v){
Intent intent =new Intent("com.google.zxing.client.android.SCAN");//调用扫描的actity,这里其实只是转到刚才安装的BarcodeScanner3程序的中一个actity
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");//输入参数,(扫描类型,..二维码)
startActivityForResult(intent, 0);//启动intent
}
};
//扫描成功后回调函数,传回code
publicvoid onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode ==0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
tv.setText(" 条形码为:"+contents+" 条码类型为: "+format);//利用页面的textveiw显示扫描后的结果
} elseif (resultCode == RESULT_CANCELED) {
// Handle cancel
tv.setText(" 扫描失败!");
}
}
}
}
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
publicclass MyTest extends Activity {
/** Called when the activity is first created. */
private TextView tv;
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mytest);
tv=(TextView) findViewById(R.id.mytxt);
findViewById(R.id.mybtn).setOnClickListener(listener);
}
public Button.OnClickListener listener=new Button.OnClickListener(){
publicvoid onClick(View v){
Intent intent =new Intent("com.google.zxing.client.android.SCAN");//调用扫描的actity,这里其实只是转到刚才安装的BarcodeScanner3程序的中一个actity
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");//输入参数,(扫描类型,..二维码)
startActivityForResult(intent, 0);//启动intent
}
};
//扫描成功后回调函数,传回code
publicvoid onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode ==0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
tv.setText(" 条形码为:"+contents+" 条码类型为: "+format);//利用页面的textveiw显示扫描后的结果
} elseif (resultCode == RESULT_CANCELED) {
// Handle cancel
tv.setText(" 扫描失败!");
}
}
}
}
对应的xml如下
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:id="@+id/mytxt" /> <Button android:text="点我开始扫描" android:id="@+id/mybtn" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </LinearLayout>
第三步:OK我们赶快看看效果吧, 运行。
你会看到如下:
模拟器当然没有摄像头设备是扫描不到结果的。
总结:
这里只是做了一个简单的调用,调用简单但有一个很大的缺陷,这里我们要安装两个程序!
在安装BarcodeScanner3.5.apk为前题,这明显不能接受!所以接下来我将在下篇博客继续深入。敬请关注!