CSDN 地址:http://blog.csdn.net/xiangyong_1521/article/details/50740697
这是16年的时候,用ZXING包简单地实现了扫描和扫描的结果反馈的一个DEMO,出于对二维码扫描的兴趣而做的,只是一直未运用到实际的工作中,就当是玩泥巴了!
所谓的二维码,是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形,用于记录数据符号信息的东西; 在代码编制上巧妙的利用构成计算机内部逻辑基础的0和1比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理; 二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息; 二维码相对于条形码的优势就是省空间;
Zxing是一个开放源码的,用java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的接口。 Zxing可以实现使用手机的内置的摄像头完成条形码和二维码的扫描与解码。 目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括: J2ME、J2SE和Android zxing目前支持的的格式如下: UPC-A,UPC-E EAN-8,EAN-13 39码 93码 代码128 QR码
我用的是“草料二维码”生成二维码的工具生成一个结果为xiangyong的二维码:
最终实现的gif:
import com.zxing.activity.CaptureActivity;
public class MainActivity extends Activity implements OnClickListener{
private Button button1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//扫码操作
Intent intent=new Intent(this,CaptureActivity.class);
startActivityForResult(intent,0);
}
//此方法用于获取扫描的数据内容data
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode==Activity.RESULT_OK){
//重写result,获得扫描出来的内容:
String result=data.getExtras().getString("result");
Toast.makeText(this, result, 1).show();
}
}
}
清单配置中需要添加的内容:
<!-- 需要的权限 -->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<!-- 注册CaptureActivity -->
<activity
android:configChanges="orientation|keyboardHidden"
android:name="com.zxing.activity.CaptureActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden" >
</activity>