二维码的 扫描 扫描本地图库 生成一个二维码
2017-12-05 15:02
344 查看
package com.example.qrcodedemo; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.Toast; import com.uuzuche.lib_zxing.activity.CaptureActivity; import com.uuzuche.lib_zxing.activity.CodeUtils; public class MainActivity extends AppCompatActivity { //定义处理返回的code private static final int REQEUST_CODE = 111; private static final int REQUEST_IMAGE = 122; private ImageView ivIcon; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ivIcon = (ImageView) findViewById(R.id.ivIcon); } //扫描二维码 public void btnScannerQRCode(View view){ Intent intent = new Intent(this, CaptureActivity.class); //startActivity(intent); startActivityForResult(intent,REQEUST_CODE); } //选择图库里面的二维码图片进行识别 public void btnChoosePicAnalysy(View view){ //跳转手机相册的隐式意图 Intent intent=new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); startActivityForResult(intent,REQUEST_IMAGE); } //生成一个不带logo的二维码 public void btnCreateQRCode(View view){ Bitmap bitmap=CodeUtils.createImage("我很丑可是我很温柔",400,400,null); //设置图片对象 ivIcon.setImageBitmap(bitmap); } //生成一个带logo的二维码 public void btnCreateQRCodeLogo(View view){ Bitmap bitmap=CodeUtils.createImage("罗曼蒂克的爱情故事",400,400, BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher_round)); //设置图片对象 ivIcon.setImageBitmap(bitmap); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == REQEUST_CODE) { if(null != data){ //得到一个bundle Bundle bundle = data.getExtras(); if(bundle == null){ return; } //判断扫描是否成功 if(bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS){ //获取扫描结果 String result = bundle.getString(CodeUtils.RESULT_STRING); //吐司扫描结果 Toast.makeText(this, result, Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this, "解析失败", Toast.LENGTH_SHORT).show(); } } }else if(requestCode == REQUEST_IMAGE){ //识别二维码图片结果的一个处理 if(null != data){ //处理扫描图片的结果 Uri uri = data.getData(); try { //得到图片路劲进行解析 CodeUtils.analyzeBitmap(ImageUtil.getImageAbsolutePath(this, uri), new CodeUtils.AnalyzeCallback() { @Override public void onAnalyzeSuccess(Bitmap mBitmap, String result) { Toast.makeText(MainActivity.this, "解析结果:" + result, Toast.LENGTH_LONG).show(); } @Override public void onAnalyzeFailed() { Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show(); } }); } catch (Exception e) { e.printStackTrace(); } } } } } //布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.qrcodedemo.MainActivity"> <Button android:onClick="btnScannerQRCode" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="开启扫描二维码"/> <Button android:onClick="btnChoosePicAnalysy" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="选择图库识别二维码"/> <Button android:onClick="btnCreateQRCode" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="生成一个不带logo的二维码"/> <Button android:onClick="btnCreateQRCodeLogo" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="生成一个带Logo的二维码名片"/> <ImageView android:id="@+id/ivIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
初始化一下二维码扫描库
package com.example.qrcodedemo; import android.app.Application; import com.uuzuche.lib_zxing.activity.ZXingLibrary; /** * Created by 知足 on 2017/12/5. */ public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); //初始化二维码扫描库 ZXingLibrary.initDisplayOpinion(this); } }
//注意要加的权限
<uses-permission android:name="android.permission.CAMERA"/> <!-- 震动权限 --> <uses-permission android:name="android.permission.VIBRATE"/>
//要导的依赖
compile 'cn.yipianfengye.android:zxing-library:2.2'
//也可以去往 http://blog.csdn.net/qq_23547831/article/details/52037710里面有详解
相关文章推荐
- 二维码的扫描,生成,读取本地二维码(oc原生)
- 条形码、二维码的生成与扫描、解析本地二维码
- Android 使用Zxing实现二维码的生成,扫描
- 一个基于QR Code encoder的 php 扩展,更高效的生成二维码
- Android 生成带Logo的二维码或普通的二维码,后续将会推出一个java exe二维码生成插件
- iOS自带扫描和生成二维码
- 生成的二维码下载保存到本地
- 二维码的 扫描和生成
- iOS笔记061 - 二维码的生成和扫描
- 发现一个生成二维码的小工具,可以设置背景图片
- 二维码生成、扫描、图片识别(Zxing)
- 二维码的生成和扫描识别
- qrcode生成一个带有图片的二维码
- iOS 二维码的生成和扫描
- ios二维码生成和扫描
- Android之ZXing扫描二维码以及生成二维码
- 扫描本地相册二维码----利用ZXingOBJC
- cocos2dx-lua在ios上实现生成及扫描二维码
- Java生成二维码实现扫描次数统计并转发到某个地址 分类: 二维码 Java 2015-01-08 10:38 407人阅读 评论(0) 收藏
- IOS下用Zbar实现摄像头扫描二维码和扫描本地相册二维码