导航:首页 > 操作系统 > android读取二维码

android读取二维码

发布时间:2025-05-26 11:18:07

Ⅰ 在android开发中 什么库可以识别DM二维码

1.1 准备工作
如果我们只做二维码的生成,那么只需要添加核心jar包即可,
1.2 二维码生成
OK,添加完jar包之后我们就可以开始写二维码生成代码了,二维码本身就是一张Bitmap图片,所以我们这里主要就是看怎么样来生成这张图片,我在主界面添加一个按钮和一个ImageView,当点击按钮时生成一张二维码图片显示在ImageView上。布局如下:
[java] view plain print?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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"
tools:context="org.mobiletrain.qrwriter.MainActivity">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="generate"
android:text="生成二维码"/>

<ImageView
android:id="@+id/iv"
android:layout_width="256dp"
android:layout_height="256dp"
android:layout_centerInParent="true"/>
</RelativeLayout>

当我点击按钮时生成二维码图片,那我们就来看看生成二维码图片的核心代码:
[java] view plain print?
private Bitmap generateBitmap(String content,int width, int height) {
QRCodeWriter qrCodeWriter = new QRCodeWriter();
Map<EncodeHintType, String> hints = new HashMap<>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
try {
BitMatrix encode = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, width, height, hints);
int[] pixels = new int[width * height];
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
if (encode.get(j, i)) {
pixels[i * width + j] = 0x00000000;
} else {
pixels[i * width + j] = 0xffffffff;
}
}
}
return Bitmap.createBitmap(pixels, 0, width, width, height, Bitmap.Config.RGB_565);
} catch (WriterException e) {
e.printStackTrace();
}
return null;
}

首先这个方法接收三个参数,这三个参数分别表示生成二维码的文本内容(你要把哪一个文本用二维码图片表示出来),第二个和第三个参数分别表示生成的二维码图片的宽和高。在这里,我们首先要获得一个QRCodeWriter实例,该实例中有一个方法叫做encode,通过该方法对文本内容进行编码,该方法共有五个参数,第一个参数表示生成二维码的文本内容,第二个参数表示编码格式,第三个参数表示生成的二维码的宽度,第四个参数表示生成的二维码的高度,第五个参数可选,可以用来设置文本的编码,encode方法的返回值是一个BitMatrix,你可以把BitMatrix理解成一个二维数组,这个二维数组的每一个元素都表示一个像素点是否有数据。OK,接下来我们需要定义一个int数组用来存放Bitmap中所有像素点的颜色,可是我们又怎么知道每一个像素点是什么颜色呢?这个时候就需要我们遍历BitMatrix了,如果BitMatrix上的点表示 该点有数据,那么对应在Bitmap上的像素点就是黑色,否则就是白色。BitMatrix中的get方法的返回值为一个boolean类型,true表示该点有数据,false表示该点没有数据。通过两个嵌套的for循环将BitMatrix遍历一遍,然后给pixels数组都赋上值,OK,pixels数组有值之后,接下来调用Bitmap的createBitmap方法创建一个Bitmap出来就可以了,createBitmap方法共接收6个参数,第一个参数表示Bitmap中所有像素点的颜色,第二个参数表示像素点的偏移量,第三个参数表示Bitmap每行有多少个像素点,第四个参数表示生成的Bitmap的宽度,第五个参数表示生成的Bitmap的高度,第六个参数表示生成的Bitmap的色彩模式,因为二维码只有黑白两种颜色,所以我们可以不用考虑透明度,直接使用RGB_565即可。OK,这样的话我们就获取到了二维码的图片了,最后我们再来看看点击事件:
[java] view plain print?
public void generate(View view) {
Bitmap qrBitmap = generateBitmap("http://www.csdn.net",400, 400);
iv.setImageBitmap(qrBitmap);
}

Ⅱ android开发二维码扫一扫需要什么权限

你好,
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" /> <!-- 使用照相机权限 -->
<uses-feature android:name="android.hardware.camera.autofocus" /> <!-- 自动聚焦权限 -->

在基于6.0以上系统开发的时候 ,需要申请用代码申请权限

Ⅲ android端UC浏览器扫描手机本地带有二维码的图片无法识别

您好,很高兴为您服务!
麻烦提供下该二维码的图片继续测试。使用安卓9.9.2版本的UC浏览器测试,扫描本地二维码,并不会出现该情况。重启下浏览器,再次扫描试试,还有,试下扫描其他二维码能否正常。也麻烦提供下该二维码图片测试下。
如果仍有问题,请您继续向我们反馈,我们会第一时间为您跟进。

Ⅳ 请问你门的Android与iphone手机,扫二维码都怎样扫

在苹果手机自带的应用里,包括相机,是没有扫描二维码这个功能的。但是可以采取其他手段如下:



1、QQ、微信、微博这一类软件,它们就有扫描二维码的功能,支持用手机上的相机直接扫描二维码,也支持扫描你保存到手机相册中的二维码。

阅读全文

与android读取二维码相关的资料

热点内容
股价回踩60日均线选股源码 浏览:233
矿用可编程控制箱 浏览:175
数据结构与算法js 浏览:232
鸿蒙怎么更改app名称 浏览:309
cad快速选择的命令 浏览:481
古人如何加密情报 浏览:243
阿里云服务器下载 浏览:437
java服务器如何收费 浏览:697
怎么旧版安卓 浏览:373
如何将安卓手机app移到ipad上 浏览:733
无线的加密类型怎么看 浏览:638
正应力最大的算法 浏览:8
ios数据压缩 浏览:26
多线程原理java 浏览:296
linux压缩文件rar 浏览:326
洛丽塔pdf插画 浏览:7
java常用技术 浏览:987
java算法书 浏览:599
鸡兔同笼问题编程怎么写 浏览:525
51单片机5v电流是多少 浏览:16