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.5'
}
原来乃只想要 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();
}
});
参数名 | 类型 | 说明 | 默认值 | 备注 |
---|---|---|---|---|
contents | String | 欲编码的内容 | null | 必需 |
size | int-px | 尺寸, 长宽一致, 包含外边距 | 800 | 必需 |
margin | int-px | 二维码图像的外边距 | 20 | 必需 |
dataDotScale | float | 数据点缩小比例 | 0.3f | (0, 1.0f) |
colorDark | int-color | 非空白区域的颜色 | Color.BLACK | |
colorLight | int-color | 空白区域的颜色 | Color.WHITE | |
background | Bitmap | 欲嵌入的背景图, 设为 null 以禁用 | null | |
whiteMargin | int-px | 若设为 true, 背景图外将绘制白色边框 | true | |
autoColor | boolean | 若为 true, 背景图的主要颜色将作为实点的颜色, 即 colorDark | true | |
binarize | boolean | 若为 true, 图像将被二值化处理, 未指定阈值则使用默认值 | fasle | |
binarizeThreshold | int | 二值化处理的阈值 | 128 | (0, 255) |
roundedDataDots | boolean | 若为 true, 数据点将以圆点绘制 | false | |
logo | Bitmap | 欲嵌入至二维码中心的 Logo, 设为 null 以禁用 | null | |
logoMargin | int-px | Logo 周围的空白边框, 设为 0 以禁用 | 10 | |
logoCornerRadius | int-px | Logo 及其边框的圆角半径, 设为 0 以禁用 | 8 | |
logoScale | float | 用于计算 Logo 大小, 过大将覆盖过多数据点而导致解码失败 | 0.2f | (0, 1.0f) |
- 使用 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 Sumi Makito.