android开发之生成二维码

2025-10-25 02:06:57

1、打开Eclipse软件

android开发之生成二维码

2、新建一个项目

将BarCodeTestActivity.java

   EncodingHandler.java

   main.xml 

中的代码分别按图中结构粘贴好

android开发之生成二维码

3、将jar包粘贴入项目,位置查看图中文件夹名称

备注:这个jar包百度一下就可以自行下载得到

android开发之生成二维码

4、AndroidManifest.xml配置按图中标示配置好

android开发之生成二维码

5、按照以上四步做好,运行就OK了

1、package com.generated;

import com.ericssonlabs.R;

import com.ericssonlabs.R.id;

import com.ericssonlabs.R.layout;

import com.google.zxing.WriterException;

import android.app.Activity;

import android.graphics.Bitmap;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ImageView;

import android.widget.Toast;

public class BarCodeTestActivity extends Activity {

private EditText qrStrEditText;

private ImageView qrImgImageView;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        

        qrStrEditText = (EditText) this.findViewById(R.id.et_qr_string);

        qrImgImageView = (ImageView) this.findViewById(R.id.iv_qr_image);

        Button generateQRCodeButton = (Button) this.findViewById(R.id.btn_add_qrcode);

        generateQRCodeButton.setOnClickListener(new OnClickListener() {

@Override

public 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 block

e.printStackTrace();

}

}

});

    }

}

1、package com.generated;

import java.util.Hashtable;

import android.graphics.Bitmap;

import com.google.zxing.BarcodeFormat;

import com.google.zxing.EncodeHintType;

import com.google.zxing.MultiFormatWriter;

import com.google.zxing.WriterException;

import com.google.zxing.common.BitMatrix;

public final class EncodingHandler {

private static final int BLACK = 0xff000000;

public static Bitmap createQRCode(String str,int widthAndHeight) throws WriterException {

Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();  

        hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); 

BitMatrix matrix = new MultiFormatWriter().encode(str,

BarcodeFormat.QR_CODE, widthAndHeight, widthAndHeight);

int width = matrix.getWidth();

int height = matrix.getHeight();

int[] pixels = new int[width * height];

for (int y = 0; y < height; y++) {

for (int x = 0; x < width; x++) {

if (matrix.get(x, y)) {

pixels[y * width + x] = BLACK;

}

}

}

Bitmap bitmap = Bitmap.createBitmap(width, height,

Bitmap.Config.ARGB_8888);

bitmap.setPixels(pixels, 0, width, 0, 0, width, height);

return bitmap;

}

}

1、<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:background="@android:color/white"

    android:orientation="vertical" >

    

    <EditText 

        android:id="@+id/et_qr_string"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_marginTop="30dp"

        android:textColor="#3399FF"

        android:hint="Input the text"/>

    

    <Button

        android:id="@+id/btn_add_qrcode"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

         android:textColor="@android:color/black"

        android:text="Generate QRcode" />

    

    <ImageView 

        android:id="@+id/iv_qr_image"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginTop="10dp"

        android:layout_gravity="center"/>

</LinearLayout>

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢