diff --git a/AppScope/app.json5 b/AppScope/app.json5 index 90cd25c60a8aa9c6e00279d34614c4947244149f..d3aa8e6b6ecf6d88a516b2b4bc2eb8ff353dd300 100644 --- a/AppScope/app.json5 +++ b/AppScope/app.json5 @@ -3,7 +3,7 @@ "bundleName": "cn.openharmony.qrcodegenerator", "vendor": "example", "versionCode": 1000000, - "versionName": "2.0.1-rc.0", + "versionName": "2.0.1-rc.1", "icon": "$media:app_icon", "label": "$string:app_name", "distributedNotificationEnabled": true diff --git a/CHANGELOG.md b/CHANGELOG.md index 10b0630630b43e72a22905f91d20e0e350d9a61b..0480753cc19dc0d7e23f15563d5cf1f980aa682e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +## 2.0.1-rc.1 +drawCanvas方法修改逻辑,解决二维码水平不居中问题和底部被遮挡问题 ## 2.0.1-rc.0 修复不兼容API9问题 ## 2.0.1 diff --git a/entry/oh-package.json5 b/entry/oh-package.json5 index 29ff35c901e536486902b3fdb6dbef0577d7e514..3ae30d180fbbf9042a5691d90da14e262afadf5a 100644 --- a/entry/oh-package.json5 +++ b/entry/oh-package.json5 @@ -4,7 +4,7 @@ "name": "entry", "description": "example description", "repository": "", - "version": "2.0.1-rc.0", + "version": "2.0.1-rc.1", "dependencies": { "@ohos/qr-code-generator": "file:../library" } diff --git a/library/oh-package.json5 b/library/oh-package.json5 index 4cfbe42c9a2e87e1e7f144b600e8429afe423815..9a3037c275e68cae83a53220730b14893bbbe26f 100644 --- a/library/oh-package.json5 +++ b/library/oh-package.json5 @@ -12,6 +12,6 @@ "description": "High-quality QR Code generator library", "main": "index.ets", "repository": "https://gitee.com/openharmony-sig/qr-code-generator", - "version": "2.0.1-rc.0", + "version": "2.0.1-rc.1", "dependencies": {} } \ No newline at end of file diff --git a/library/src/main/ets/components/MainPage/qrcodegen.ets b/library/src/main/ets/components/MainPage/qrcodegen.ets index a527c438e9a971b645810e0ab57c7adad247a77a..941755eb778d6e01f80d15264f274c96a958c97c 100644 --- a/library/src/main/ets/components/MainPage/qrcodegen.ets +++ b/library/src/main/ets/components/MainPage/qrcodegen.ets @@ -253,11 +253,31 @@ namespace qrcodegen { public drawCanvas(scale: int, border: int, canvas: CanvasRenderingContext2D): void { if (scale <= 0 || border < 0) throw new Error("Value out of range"); - const width: int = (this.size + border * 2) * scale; - let canvasWidth = Math.min(canvas.width + canvas.height) - for (let y = -border; y < this.size + border; y++) { - for (let x = -border; x < this.size + border; x++) { - canvas.fillStyle = this.getModule(x, y) ? "#000000" : "#FFFFFF"; + let x1:number = 0; + + let y1:number = 0; + let codeScale: int = (this.size + border * 2) * scale; + let canvasMinEdge = Math.min(canvas.height,canvas.width); + // 二维码>canvas,需要缩小二维码 + if (canvasMinEdge < codeScale) { + scale = canvasMinEdge/(this.size + border * 2); + // 缩小后还有水平居中 + codeScale = (this.size + border * 2) * scale; + + if (x1 <= 0) { + x1 = 0; + } + if (y1 <= 0) { + y1 = 0; + } + } + x1 = Math.round(((canvas.width - codeScale)/2)/scale); + + y1 = Math.round(((canvas.height - codeScale)/2)/scale); + + for (let y = -border + y1; y < this.size + border + y1; y++) { + for (let x = -border + x1; x < this.size + border + x1; x++) { + canvas.fillStyle = this.getModule(x - x1, y - y1) ? "#000000" : "#FFFFFF"; canvas.fillRect((x + border) * scale, (y + border) * scale, scale, scale); } } diff --git a/oh-package.json5 b/oh-package.json5 index 6401c0e387e5693c1182a24b8291fccd3426b402..f73b4f56f4375984b57485f97eaeace76c2b7319 100644 --- a/oh-package.json5 +++ b/oh-package.json5 @@ -6,6 +6,6 @@ "name": "qrcodegenerator", "description": "example description", "repository": "", - "version": "2.0.1-rc.0", + "version": "2.0.1-rc.1", "dependencies": {} }