编写最简单的android扫描条形码功能
已经有java的第三方开源条形码识别库(zxing)了,在自己的应用中扫描条形码实际上只需调用该第三方库的实现即可。写扫描和识别条形码的android支持库的时候还没有g1手机,现在可以试试了。
为了能调用zxing,需要先安装google market中的barcode scanner:
程序很简陋,第一个界面:
第二个界面,跳到了zxing库提供的Activity去做条形码扫描,这里扫描的是生成QR二维条码中的本站url。
qr码瞬间就可以识别到,然后从zxing的Activity返回到程序中,显示条目内容:
编写代码很简单。
java代码:
package com.easymorse;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;public class ShowBarcodeActivity extends Activity implements OnClickListener {
private Button button;
private TextView textView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);this.button = (Button) this.findViewById(R.id.Button01);
this.button.setOnClickListener(this);this.textView = (TextView) this.findViewById(R.id.hello);
}@Override
public void onClick(View view) {
Intent intent = new Intent(“com.google.zxing.client.android.SCAN”);
intent.putExtra(“SCAN_MODE”, “QR_CODE_MODE”);
this.startActivityForResult(intent, 0);
}@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode != 0) {
return;
}this.textView.setText(data.getStringExtra(“SCAN_RESULT”));
}
}
layout目录下面的main.xml:
http://schemas.android.com/apk/res/android”
android:orientation=”vertical”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
>
android:id=”@+id/hello”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”@string/hello”
/>
values目录下的strings.xml
目前没有扫描结果。
购物小参考
点击开始扫描…
从这个示例中也可以看到android强大的地方,可以复用(reuse)其他应用的服务(Service)或者Activity。