您的位置:首页 > 其它

二维码的 扫描 扫描本地图库 生成一个二维码

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里面有详解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: