使用BarCodeTest库文件 + zxing.jar 实现扫描和生成二维码的操作。
Demo:http://download.csdn.net/detail/ss1168805219/9495904
效果图:
需要:
library: BarCodeTest
zxing.jar
配置AndroidManifest.xml
1 导入BarCodeTest(见demo),并作为项目的依赖库,添加zxing.jar 到libs目录,
配置AndroidManifest.xml
<span style="font-size:12px;"> <!-- zxing权限 -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" /></span>
<span style="font-size:12px;"> <!-- 注册activity-->
<activity
android:name="com.zxing.activity.CaptureActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden" >
</activity></span>
布局预览
2 扫描:
实现扫描:
public void scan() {
tv = (TextView) findViewById(R.id.tv);
Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, CaptureActivity.class);
startActivityForResult(intent, 0);
}
});
}
要注册activity
获取返回数据
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
String result = data.getExtras().getString("result");
tv.setText(result);
}
}
3 生成二维码
public void generate() {
iv = (ImageView) findViewById(R.id.iv);
btn2 = (Button) findViewById(R.id.btn2);
et = (EditText) findViewById(R.id.et);
et.addTextChangedListener(new TextWatcher() {
private String str2;
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
str2 = s.toString();
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (TextUtils.isEmpty(str2)) {
Toast.makeText(context, "请输入内容", 0).show();
} else {
try {
Bitmap bitmap = EncodingHandler.createQRCode(
str2, 300);
iv.setImageBitmap(bitmap);
} catch (WriterException e) {
e.printStackTrace();
}
}
}
});
}
});
}