新年已过,一切恢复真正常,新的一年给自己几句指引:
光努力还不行,方向很重要。
总是想着最坏的结果,就会让人失去改变的勇气。
你当然有权利选择自己的人生--但只有在你真正强大后,逆行的阻力才会降到最小。
never say never.
下面开始记录二维码使用过程吧。官方给的库请自行去github下载:https://github.com/zxing/zxing
一、简介:ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。目前支持以下格式:UPC-A,UPC-E、EAN-8,EAN-13、39码、93码。ZXing是个很经典的条码/二维码识别的开源类库,以前在功能机上,就有开发者使用J2ME运用ZXing了,不过要支持JSR-234规范(自动对焦)的手机才能发挥其威力。
二、ZXing库里面主要的类以及这些类的作用:
CaptureActivity。这个是启动Activity 也就是扫描器。
CaptureFragment。自定义扫描的Fragment。
DecodeThread 解码的线程。
com.google.zxing.client.android.camera 包,摄像头控制包。
ViewfinderView 自定义的View,就是我们看见的拍摄时中间的框框了。
三、生成url的二维码,代码如下:url = “http://blog.csdn.net/crazy1235/article/details/56087721?ref=myread”
private final int QR_WIDTH = 300;
private final int QR_HEIGHT = 300;
private ImageView imageView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qrcode);
imageView = (ImageView)findViewById(R.id.iv_qrcode);
String url = getIntent().getStringExtra("url");
createQRImage(url);
}
public void createQRImage(String url)
{
try
{
//判断URL合法性
if (url == null || "".equals(url) || url.length() < 1)
{
return;
}
Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
//图像数据转换,使用了矩阵转换
BitMatrix bitMatrix = new QRCodeWriter().encode(url, BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT, hints);