android 二维码简单开发
来源:互联网 发布:ping用的是什么端口 编辑:程序博客网 时间:2024/06/08 18:31
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">本文主要讲关于安卓的二维码的使用:扫描二维码,生成简单的二维码</span>
进入正题:二维码扫描需要一个相关的框架,谷歌官方提供了一个很好的框架: ZXing 框架,用起来也比较简单便捷
平台:android studio,首先是添加依赖,两种方式,直接在依赖中的搜索ZXing选择goodle 框架
或者可以选择 lib 添加依赖这里自己在 github 上找到一个库(可到https://github.com/yzbbanban查看相关项目,关于二维码的),这里就直接引入 lib 库,引入方式,现将 lib 导入 android 项目中
然后是添加依赖
这是添加之后的结果
代码部分就很简单了,布局文件就用一个 Button+TextView,TextView 用于显示扫描之后的结果
布局代码:
<Button android:id="@+id/btn" android:layout_width="match_parent" android:onClick="scan" android:layout_height="wrap_content" android:text="扫描" /> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:textColor="@color/colorAccent" android:textSize="24sp" />Button 加入 onClick 事件
public void scan(View view) { startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class), 0); }
直接启动扫描二维码相关的的CaptureActivity,也不需要在注册文件中加入权限(库中已加入相机权限),只需要直接调用即可,并且我们扫描之后需要获取返回值,所以需要 startActivityForResult 获取一个返回值
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { Bundle bundle = data.getExtras(); String text = bundle.getString("result"); Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); tv.setText(text); } }获取返回值呈现相关数据,其中 resultCode 中获取的参数为 lib 中CaptureActivity 的返回结果,其中相关的代码是这样的
public void handleDecode(Result rawResult, Bundle bundle) { inactivityTimer.onActivity(); beepManager.playBeepSoundAndVibrate(); Intent resultIntent = new Intent(); bundle.putInt("width", mCropRect.width()); bundle.putInt("height", mCropRect.height()); bundle.putString("result", rawResult.getText()); resultIntent.putExtras(bundle); this.setResult(RESULT_OK, resultIntent); CaptureActivity.this.finish(); }即获取的的值是一个 bundle,我们就需要在 onActivityResult 中利用 bundle 回去相关参数
这样就完成了一个简单的扫描二维码的程序,可将二维码回去的结果生成一个字符串
线面介绍一下由文字生成二维码的代码:同样也是利用框架中的方法,稍微解释下就行
布局代码:
<EditText android:id="@+id/et" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/btn_make" android:text="生成二维码" android:onClick="make" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ImageView android:id="@+id/iv" android:src="@mipmap/my_logo" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" />一个输入框,一个生成按钮,一个现实图片(Linnerlayout 布局)
方法很简单,获取输入框的数据,然后调用 EncodingUtils 中的creatorCode()方法,参数依次为:输入的内容,图片宽度,图片高度,logo 的图片(Bitmap)
public void make(View view) { String intput = et.getText().toString().trim(); if ("".equals(intput)) { Toast.makeText(this, "输入不为空", Toast.LENGTH_SHORT).show(); } else { Bitmap b = EncodingUtils.createQRCode(intput, 500, 500, logo); iv.setImageBitmap(b ); } }
然后就是主要代码的完整代码:
package com.wangban.yzbbanban.myapplication;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import com.xys.libzxing.zxing.activity.CaptureActivity;import com.xys.libzxing.zxing.encoding.EncodingUtils;public class MainActivity extends AppCompatActivity { private TextView tv; private EditText et; private ImageView iv; private Bitmap logo; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv); et = (EditText) findViewById(R.id.et); iv = (ImageView) findViewById(R.id.iv); logo = BitmapFactory.decodeResource(getResources(), R.mipmap.my_logo); } public void scan(View view) { startActivityForResult(new Intent(MainActivity.this, CaptureActivity.class), 0); } public void make(View view) { String intput = et.getText().toString().trim(); if ("".equals(intput)) { Toast.makeText(this, "输入不为空", Toast.LENGTH_SHORT).show(); } else { Bitmap b = EncodingUtils.createQRCode(intput, 500, 500, logo); iv.setImageBitmap(b ); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { Bundle bundle = data.getExtras(); String text = bundle.getString("result"); Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); tv.setText(text); } }}
0 0
- android 二维码简单开发
- android 二维码zxing开发
- android 二维码扫描开发
- android开发--二维码
- android开发之二维码
- Android二维码扫描开发
- Android开发中的二维码
- android开发二维码扫描
- Android 简单生成二维码名片
- Android开发之二维码扫描
- Android zxing二维码开发 横屏转竖屏
- Android开发 二维码的生成
- 安卓开发简单扫描二维码操作
- 最简单的 Android ZXing二维码扫描
- 一个简单的Android生成二维码Demo。
- Android生成二维码的简单实例
- Android studio 二维码扫描简单例子
- Android 二维码扫描和生成简单实现
- iOS 开发-app的消息推送
- Echarts3 主题设置
- oracle case.when group by
- 第3章 使用字符串
- 怎么才能看懂程序设计的书
- android 二维码简单开发
- Ehcache 整合Spring 使用页面、对象缓存
- 【数据可视化】可放缩可拖拽画布的力导向图
- DL学习笔记【5】caffe参数调节-solver文件
- pjsip的语音检测
- JVM系列四:生产环境参数实例及分析【生产环境实例增加中】
- win7(windows7)下java环境变量配置方法
- iOS 开发之多线程的应用场景
- jvm监测、调优