原文:http://www.cnblogs.com/xinyibufang/p/7337758.html
刚学习安卓,碰到一个需要二维码的项目,折腾了几天,网上资源一大把,可能是自己太菜了,各种bug,调试都调试不过来,最后自己捣鼓出来了。
本文分为两部分,
-
集成zxing,这里我们用的是精简版的包,Zxing在Github是有随便百度一下就有就不贴了
-
这里贴上我们用的简化的zxing包,适合只需要扫描二维码功能的同学
-
百度网盘:链接: https://pan.baidu.com/s/1miSk9ja 密码: 8bw9(附免费demo)
- 解压下载好的包,在ZXing二维码\ZXingProject-master\ZXingProj\src\com\dtr目录下,复制这个zxing文件夹到我们的项目中
- 注意复制的位置 仔细看
- 重点!!! 复制下载好的项目中的zxing.jar包到我们自己项目中的libs里
- 然后右键AddAsLibrary这一步一定要做,不然各种bug
- 复制下载的res的layout文件、res的values的ids文件、raw文件夹、res的drawable-xhdpi文件夹到我们项目的对应位置
- 重新导入文件,记得删除原先的R包,换成自己项目的R包 这里有好几处包名对不上的,多编译几次,然后把错误的包直接删除,在飘红代码处直接按Alt+Enter自动补齐,不用手敲
修改:
全部修改完重新编译无错误
- 在我们Manifests的声明权限和Activity
- 贴上调用代码
public class MainActivity extends AppCompatActivity { private Button button; private TextView text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text = (TextView) findViewById(R.id.text); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this, CaptureActivity.class)); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { Bundle bundle = data.getExtras(); //显示扫描到的内容 text.setText(bundle.getString("result")); } } }
这里我们就不贴实际效果图啦。