001 | package com.google.zxing.client.android; |
002 | |
003 | import java.util.Hashtable; |
004 | |
005 | import android.app.Activity; |
006 | import android.graphics.Bitmap; |
007 | import android.graphics.drawable.BitmapDrawable; |
008 | import android.os.Bundle; |
009 | import android.util.Log; |
010 | import android.view.View; |
011 | import android.view.View.OnClickListener; |
012 | import android.widget.Button; |
013 | import android.widget.EditText; |
014 | import android.widget.ImageView; |
015 | import android.widget.TextView; |
016 | |
017 | import com.google.zxing.BarcodeFormat; |
018 | import com.google.zxing.BinaryBitmap; |
019 | import com.google.zxing.ChecksumException; |
020 | import com.google.zxing.EncodeHintType; |
021 | import com.google.zxing.FormatException; |
022 | import com.google.zxing.NotFoundException; |
023 | import com.google.zxing.Result; |
024 | import com.google.zxing.WriterException; |
025 | import com.google.zxing.common.BitMatrix; |
026 | import com.google.zxing.common.HybridBinarizer; |
027 | import com.google.zxing.qrcode.QRCodeReader; |
028 | import com.google.zxing.qrcode.QRCodeWriter; |
029 | import com.test.RGBLuminanceSource; |
030 | |
031 | public class TestActivity extends Activity { |
032 | private static final String TAG = "TestActivity" ; |
033 | |
034 | String path; |
035 | private final static String pFormat = "png" ; |
036 | |
037 | |
038 | |
039 | protected void onCreate(Bundle savedInstanceState) { |
040 | super .onCreate(savedInstanceState); |
041 | setContentView(R.layout.testactivity); |
042 | //set |
043 | Button btn2 = (Button)findViewById(R.id.Button03); |
044 | btn2.setOnClickListener( new OnClickListener() { |
045 | |
046 | @Override |
047 | public void onClick(View view) { |
048 | ImageView imgView = (ImageView)findViewById(R.id.ImageView01); |
049 | QRCodeReader reader = new QRCodeReader(); |
050 | int width = 200 , height = 200 ; |
051 | QRCodeWriter writer = new QRCodeWriter(); |
052 | try { |
053 | EditText edit = (EditText)findViewById(R.id.EditText01); |
054 | //edit.getText(); |
055 | Log.i(TAG, "编辑框中的内容: " + edit.getText().toString()); |
056 | // System.out.println(edit.getText().toString()); |
057 | if (edit.getText().toString().length()< 1 ) |
058 | { |
059 | return ; |
060 | } |
061 | |
062 | BitMatrix martix = writer.encode(edit.getText().toString(), BarcodeFormat.QR_CODE, width, height); |
063 | System.out.println( "w:" +martix.width+ "h:" +martix.height); |
064 | String imageFormat = "png" ; |
065 | Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>(); |
066 | hints.put(EncodeHintType.CHARACTER_SET, "utf-8" ); |
067 | BitMatrix bitMatrix = new QRCodeWriter().encode(edit.getText().toString(),BarcodeFormat.QR_CODE, width, height,hints); |
068 | int [] pixels = new int [width * height]; |
069 | for ( int y = 0 ; y < height; y++) { |
070 | for ( int x = 0 ; x < width; x++) { |
071 | if (bitMatrix.get(x, y)){ |
072 | pixels[y * width + x] = 0xff000000 ; |
073 | } else { |
074 | pixels[y * width + x] = 0xffffffff ; |
075 | } |
076 | |
077 | } |
078 | } |
079 | |
080 | Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); |
081 | |
082 | bitmap.setPixels(pixels, 0 , width, 0 , 0 , width, height); |
083 | imgView.setImageBitmap(bitmap); |
084 | // RGBLuminanceSource source = new RGBLuminanceSource(bitmap); |
085 | // LuminanceSource source = new RGBLuminanceSource(path); |
086 | // BinaryBitmap bitmap1 = new BinaryBitmap(new HybridBinarizer(source)); |
087 | // QRCodeReader reader2= new QRCodeReader(); |
088 | // Result result = reader2.decode(bitmap1); |
089 | // System.out.println("res"+result.getText()); |
090 | |
091 | } catch (WriterException e) { |
092 | // TODO Auto-generated catch block |
093 | e.printStackTrace(); |
094 | } |
095 | } |
096 | }); |
097 | |
098 | Button btn1 = (Button)findViewById(R.id.Button01); |
099 | btn1.setOnClickListener( new OnClickListener() { |
100 | |
101 | @Override |
102 | public void onClick(View v) { |
103 | // TODO Auto-generated method stub |
104 | ImageView imgView =(ImageView)findViewById(R.id.ImageView01); |
105 | Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>(); |
106 | hints.put(EncodeHintType.CHARACTER_SET, "utf-8" ); |
107 | Bitmap bitmap = ((BitmapDrawable)imgView.getDrawable()).getBitmap(); |
108 | RGBLuminanceSource source = new RGBLuminanceSource(bitmap); |
109 | // LuminanceSource source = new RGBLuminanceSource(path); |
110 | BinaryBitmap bitmap1 = new BinaryBitmap( new HybridBinarizer(source)); |
111 | QRCodeReader reader2= new QRCodeReader(); |
112 | Result result; |
113 | try { |
114 | result = reader2.decode(bitmap1,hints); |
115 | System.out.println( "res" +result.getText()); |
116 | TextView text = (TextView)findViewById(R.id.TextView01); |
117 | text.setText(result.getText()); |
118 | } catch (NotFoundException e) { |
119 | // TODO Auto-generated catch block |
120 | e.printStackTrace(); |
121 | } catch (ChecksumException e) { |
122 | // TODO Auto-generated catch block |
123 | e.printStackTrace(); |
124 | } catch (FormatException e) { |
125 | // TODO Auto-generated catch block |
126 | e.printStackTrace(); |
127 | } |
128 | // System.out.println("res"+result.getText()); |
129 | } |
130 | }); |
131 | } |
132 | } |