代码阅读器 android,适用于Android的条形码/ Qr代码阅读器

我用zxing构建了我的应用程序.你需要一些编码.首先包括core.jar,它在core / core.jar,在你的构建路径中,然后转到他们的客户端,在

android /…./ com.google.zxing,并获取他们的代码(这不是由开发者,因为你的副本和粘贴.)最后,添加此代码:

package com.wtsang02.activities;

import android.app.Activity;

import android.content.Intent;

import android.graphics.Bitmap;

import android.os.Bundle;

import android.util.Log;

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.google.zxing.BarcodeFormat;

import com.google.zxing.BinaryBitmap;

import com.google.zxing.ChecksumException;

import com.google.zxing.FormatException;

import com.google.zxing.LuminanceSource;

import com.google.zxing.MultiFormatReader;

import com.google.zxing.NotFoundException;

import com.google.zxing.Reader;

import com.google.zxing.Result;

import com.google.zxing.ResultPoint;

import com.google.zxing.common.HybridBinarizer;

public class QRDecoder extends Activity implements OnClickListener {

private String text;

private Button webbutton;

private Bitmap bmp;

private ImageView ivPicture;

private TextView textv;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.mysales);

webbutton = (Button)findViewById(R.id.webbutton);

ivPicture = (ImageView) findViewById(R.id.ivPicture);

textv= (TextView) findViewById(R.id.mytext);

webbutton.setOnClickListener(this);

}

private void decode() {

if (bmp == null) {

Log.i("tag", "wtf");

}

bmp = bmp.copy(Bitmap.Config.ARGB_8888, true);

int[] intArray = new int[bmp.getWidth() * bmp.getHeight()];

bmp.getPixels(intArray, 0, bmp.getWidth(), 0, 0, bmp.getWidth(),

bmp.getHeight());

LuminanceSource source = new com.google.zxing.RGBLuminanceSource(

bmp.getWidth(), bmp.getHeight(), intArray);

BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

Reader reader = new MultiFormatReader();

try {

Result result = reader.decode(bitmap);

text = result.getText();

byte[] rawBytes = result.getRawBytes();

BarcodeFormat format = result.getBarcodeFormat();

ResultPoint[] points = result.getResultPoints();

textv.setText(text);

} catch (NotFoundException e) {

e.printStackTrace();

} catch (ChecksumException e) {

e.printStackTrace();

} catch (FormatException e) {

e.printStackTrace();

}

Log.i("done", "done");

if(text!=null)

Toast.makeText(getBaseContext(), text, Toast.LENGTH_LONG).show();

else{

Toast.makeText(getBaseContext(), "QQ", Toast.LENGTH_LONG).show();

}

}

@Override

public void onClick(View v) {

Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(i, 0);

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK) {

Bundle extras = data.getExtras();

bmp = (Bitmap) extras.get("data");

ivPicture.setImageBitmap(bmp);

decode();

}

}

}

此代码将使用您手机的默认摄像头,如果您需要使用他们的客户端,您将需要启动他们的CaptureActivity,您的布局应包括TextView以显示结果,ImageView显示您捕获的图像,以及按钮以启动摄像头. .这是基于2.1zxing.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值