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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!