Android最簡單生成二維碼和條形碼

wdl 8年前發布 | 8K 次閱讀 Java Android

用于android
</div>

 

界面activity    

package com.example.bbitmap;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;

public class MainActivity extends Activity {
    EditText Ed;
    ImageView imgv,imgv1;
    Button bt1,bt2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Ed=(EditText) findViewById(R.id.hit);
        imgv=(ImageView) findViewById(R.id.imgtp);
        imgv1=(ImageView) findViewById(R.id.tuping);
    }
    //生成條形碼
    public void btuon(View v){
        Ecoad ecc=new Ecoad(imgv.getWidth(), imgv.getHeight());
        try {
            Bitmap bitm=ecc.bitmap1(Ed.getText().toString());
            imgv.setImageBitmap(bitm);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }
    //生成二維碼
    public void btuon1(View v){
        Ecoad ec=new Ecoad(imgv.getWidth(), imgv.getHeight());
        Bitmap bitmap;
        try {
            bitmap = ec.bitmap(Ed.getText().toString());
            imgv.setImageBitmap(bitmap);
            imgv1.setImageResource(R.drawable.ic_launcher);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }


}

生成二維碼工具類    

package com.example.bbitmap;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;

import android.graphics.Bitmap;

//繪制圖片
public class Ecoad {
    private int width;
    private int height;
    public Ecoad(int width,int height){
        this.width=width;
        this.height=height;
    }
    //繪制二維碼
    public Bitmap bitmap(String s) throws Exception{ 
        //二維碼QR_CODE
        BarcodeFormat fomt=BarcodeFormat.QR_CODE;
        //編碼轉換
        String a=new String(s.getBytes("utf-8"),"ISO-8859-1");
        BitMatrix matrix=new MultiFormatWriter().encode(a, fomt, width, height);
        int width=matrix.getWidth();
        int height=matrix.getHeight();
        int[] pixel=new int[width*height];
        for(int i=0;i<height;i++){
            for(int j=0;j<width;j++){
                if(matrix.get(j,i))
                pixel[i*width+j]=0xff000000;
            }
        }
        Bitmap bmap=Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888);
        bmap.setPixels(pixel, 0, width, 0, 0, width, height);
        return bmap;
    }
    //繪制條形碼
    public Bitmap bitmap1(String ss) throws Exception{
        //條形碼CODE_128
        BarcodeFormat fomt=BarcodeFormat.CODE_128;
        BitMatrix matrix=new MultiFormatWriter().encode(ss, fomt, width, height);
        int width=matrix.getWidth();
        int height=matrix.getHeight();
        int[] pixel=new int[width*height];
        for(int i=0;i<height;i++){
            for(int j=0;j<width;j++){
                if(matrix.get(j,i))
                pixel[i*width+j]=0xff000000;
            }
        }
        Bitmap bmapp=Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888);
        bmapp.setPixels(pixel, 0, width, 0, 0, width, height);
        return bmapp;
    }
}
 本文由用戶 wdl 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!