//配置权限
<uses-permission android:name="android.permission.CAMERA" >
</uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
</uses-permission>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
//注册活动
<activity android:name="com.example.CaptureActivity" >
</activity>
//倒入相应的包
//扫描
startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class),0);
//生成
String text = ed.getText().toString();
System.out.println("生成的文本:" + text);
if (text == null || "".equals(text) || text.length() < 1) {
return;
}
// 把输入的文本转为二维码
BitMatrix martix = null;
try {
martix = writer.encode(text, BarcodeFormat.QR_CODE,
50, 50);
} catch (WriterException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("w:" + martix.getWidth() + "h:"
+ martix.getHeight());
Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
BitMatrix bitMatrix = null;
try {
bitMatrix = new QRCodeWriter().encode(text,
BarcodeFormat.QR_CODE, 150, 150, hints);
} catch (WriterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int[] pixels = new int[150 * 150];
for (int y = 0; y < 150; y++) {
for (int x = 0; x < 150; x++) {
if (bitMatrix.get(x, y)) {
pixels[y * 150 + x] = 0xff000000;
} else {
pixels[y * 150 + x] = 0xffffffff;
}
}
}
Bitmap bitmap = Bitmap.createBitmap(150, 150,
Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, 150, 0, 0, 150, 150);
img.setImageBitmap(bitmap);
//重写方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
Bundle bundle=data.getExtras();
String result=bundle.getString("result");
tv.setText(result);
}else{
Toast.makeText(MainActivity.this, "获取信息失败", Toast.LENGTH_SHORT).show();
}
}