Android - 条形码和二维码使用

来源:互联网 发布:怎样kingroot软件 编辑:程序博客网 时间:2024/06/11 09:57


前言

年前公司的项目计划中要使用二维码和条形码扫描功能, 也趁后端接口数据还没有开始,自己就在网上搜了一下,发现很多这样的DEMO,很多都是大同小异的,所以在这里就不一一说了,大家可以多下载几个试试看,是不是自己想要的效果。


言归正传,说说我项目中使用到二维码和条码扫描的功能,我项目中使用的是Google提供的ZXing开源项目,它提供了二维码和条形码扫描。扫描条形码就是直接读取条形码的内容,扫描二维码就是按照自己指定的二维码格式进行编码和解码。

大家可以到这里去下载Zxing项目的源码“http://code.google.com/p/zxing/”。



项目截图就是这样,一个简单的DEMO。



在AndroidMainifest文件中进行配置权限:

 <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" />


扫描Activity的设置,不然程序会崩溃的:

 <activity            android:configChanges="orientation|keyboardHidden"            android:name="com.zxing.activity.CaptureActivity"            android:screenOrientation="portrait"            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"            android:windowSoftInputMode="stateAlwaysHidden" >        </activity>
调用条形码扫描和二维码扫描请查阅BarCodeTestActivity.lass:

public class BarCodeTestActivity extends Activity {    /** Called when the activity is first created. */private TextView resultTextView;private EditText qrStrEditText;private ImageView qrImgImageView;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                resultTextView = (TextView) this.findViewById(R.id.tv_scan_result);        qrStrEditText = (EditText) this.findViewById(R.id.et_qr_string);        qrImgImageView = (ImageView) this.findViewById(R.id.iv_qr_image);                Button scanBarCodeButton = (Button) this.findViewById(R.id.btn_scan_barcode);        scanBarCodeButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//打开扫描界面扫描条形码或二维码Intent openCameraIntent = new Intent(BarCodeTestActivity.this,CaptureActivity.class);startActivityForResult(openCameraIntent, 0);}});                Button generateQRCodeButton = (Button) this.findViewById(R.id.btn_add_qrcode);        generateQRCodeButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {try {String contentString = qrStrEditText.getText().toString();if (!contentString.equals("")) {//根据字符串生成二维码图片并显示在界面上,第二个参数为图片的大小(350*350)Bitmap qrCodeBitmap = EncodingHandler.createQRCode(contentString, 350);qrImgImageView.setImageBitmap(qrCodeBitmap);}else {Toast.makeText(BarCodeTestActivity.this, "Text can not be empty", Toast.LENGTH_SHORT).show();}} catch (WriterException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});    }@Overrideprotected 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);}}}



具体在项目使用的界面如下:





注明:我也是参照这个博客来做的(http://blog.csdn.net/tangren03/article/details/7831826)。

0 0
原创粉丝点击