这篇文档中的内容已经过时,请暂以英文文档的内容为准,谢谢。
AwesomeQRCode - 一个优雅的(不起眼的) QR 二维码生成器
拿起你的手机扫描下面的二维码试试吧!
样例 1 | 样例 2 | 样例 3 |
---|---|---|
使用圆点做数据点 | 二值化处理 | 带有 Logo |
---|---|---|
万事开头难, 补全就好啦!
在项目根目录下的 build.gradle 中补充以下内容,以添加依赖项:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
在应用模块层级下的 build.gradle 中补充以下内容:
dependencies {
compile 'com.github.SumiMakito:AwesomeQRCode:1.0.6'
}
原来乃只想要 Bitmap 撒... 满足你!!
这种情况下,二维码将同步(synchronously)生成,这有可能阻塞 UI 线程,引起应用无响应(ANR)问题。因此建议在非 UI 线程中使用。
new Thread() {
@Override
public void run() {
super.run();
Bitmap qrCode = new AwesomeQRCode.Renderer()
.contents("Makito loves Kafuu Chino.")
.size(800).margin(20)
.render();
}.start();
new AwesomeQRCode.Renderer()
.contents("Makito loves Kafuu Chino.")
.size(800).margin(20)
.renderAsync(new AwesomeQRCode.Callback() {
@Override
public void onRendered(AwesomeQRCode.Renderer renderer, final Bitmap bitmap) {
runOnUiThread(new Runnable() {
@Override
public void run() {
// 提示: 这里使用 runOnUiThread(...) 来规避从非 UI 线程操作 UI 控件时产生的问题。
imageView.setImageBitmap(bitmap);
}
});
}
@Override
public void onError(AwesomeQRCode.Renderer renderer, Exception e) {
e.printStackTrace();
}
});
Bitmap bitmap = new AwesomeQRCode.Renderer() ...
必需
欲编码的内容。
默认为 null。
必需
尺寸,长宽一致,包含外边距。
单位是 px。
默认为 800。
二维码图像的外边距。
单位是 px。
默认为 20。
数据点缩小比例。
默认为 0.3f。
若为 true,数据区域将以圆点绘制。
默认为 false。
若设为 true,背景图外将绘制白色边框。
默认为 true。
若为 true,图像将被二值化处理。
默认为 false。
二值化处理的阈值。
默认为 128。
若为 true,背景图(或 GIF 的每一帧)中的主要颜色将作为非空白区域的颜色。
默认为 true。
非空白区域的颜色。
默认为 Color.BLACK。
空白区域的颜色。
默认为 Color.WHITE。
欲嵌入的背景图,设为 null 以禁用。
默认为 null。
必须是 GIF 类型图片,否则将出错。
欲嵌入的 GIF 背景图,设为 null 以禁用。
默认为 null。
裁切 GIF 所使用的矩形区域。
默认为 null。
设置 backgroundGif 时必须指定。
生成 GIF QR 二维码的输出文件。
默认为 null。
欲嵌入至二维码中心的 Logo,设为 null 以禁用。
默认为 null。
Logo 周围的空白边框,设为 0 以禁用。
单位是 px。
默认为 10。
Logo 及其边框的圆角半径,设为 0 以禁用。
单位是 px。
默认为 8。
用于计算 Logo 大小的比例,过大可能会导致解码问题。
默认为 0.2f。
... .render(); // 得到 Bitmap
- 修复了上一版本中生成的 QR 二维码图块间出现空白间隙的问题
- 加入 GIF 支持
- 修复既有问题
- 修复 divide by zero 错误
- 使用 AwesomeQRCode 的方式变的更优雅
- 可以在二维码中选择嵌入 Logo
- 演示应用更新
- 在二维码中的 Hints 中加入 CHARACTER_SET => UTF-8
- 修复 #7 中提到的编码问题
- 加入使用圆点绘制二维码数据点的选项
- 加入背景二值化的支持
- 初次发布
AwesomeQRCode 受 由 EyreFree 创造的 EFQRCode 所启发而生,它是一个轻量级的、用来生成和识别二维码的纯 Swift 库,可根据输入的水印图和图标产生艺术二维码,基于 CoreImage 进行开发。受 qrcode 启发。EFQRCode 为你提供了一种更好的在你的 App 中操作二维码的方式。
详情请至 Awesome-qr.js
更新较慢,不推荐使用。
详情请至 AwesomeQRCode-Kotlin
可以请我喝一杯卡布奇诺吗?
PayPal | 支付宝 |
---|---|
PayPal | 支付宝 |
AwesomeQRCode is available under the Apache-2.0 license. See the LICENSE file for more info.
Copyright © 2017-2018 Makito.
包含、引用、修改、再分发或使用本项目,即代表您已阅读并同意本排他性发行协议中的条款。
当再发行此开源软件时,此协议需与 APACHE 2.0 许可一同提供。
您可以:
- 在项目中使用 AwesomeQRCode(商业与非商业项目皆可)。
- 按需要修改 AwesomeQRCode 的代码。
- 按照本排他性发行协议以及 APACHE 2.0 许可再发行修改后的代码。
您不可以:
- 使用 AwesomeQRCode 作为您应用的主要或唯一功能。
- 将 AwesomeQRCode 的部分或全部内容作为可销售商品。
- 制作 AwesomeQRCode 的演示应用,并提交至商店(包括但不限于 Google Play Store)。