From e2ee2847a8f0fd80fc71e1c4ad2c008074abe9c6 Mon Sep 17 00:00:00 2001 From: fjh Date: Tue, 6 Jul 2021 18:34:14 +0800 Subject: [PATCH] =?UTF-8?q?findbugs=E4=BF=AE=E6=94=B9=E3=80=81SDK=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 8 +++++++- README.md | 14 +++++++------- build.gradle | 4 ++-- entry/build.gradle | 7 ++++--- entry/src/main/config.json | 4 ++-- library/build.gradle | 4 ++-- library/src/main/config.json | 4 ++-- .../com/tuyenmonkey/mkloader/MKLoader.java | 5 ----- .../tuyenmonkey/mkloader/type/FishSpinner.java | 7 ++++--- .../tuyenmonkey/mkloader/type/LineSpinner.java | 8 ++++++-- .../tuyenmonkey/mkloader/type/LoaderView.java | 1 - .../tuyenmonkey/mkloader/type/PhoneWave.java | 11 +++++++++-- .../com/tuyenmonkey/mkloader/type/Pulse.java | 18 +++++++++++++----- .../tuyenmonkey/mkloader/type/Sharingan.java | 1 - .../mkloader/util/AnimatorValueUtil.java | 4 ++-- 15 files changed, 60 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f34df31..a3a386a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ -## 0.0.1-SNAPSHOT +## 0.0.2-SNAPSHOT + +ohos 第二个版本: +1. 修改findbugs +2. 修改SDK更新后适配配置 + +## 0.0.1-SNAPSHOT ohos 第一个版本,完整实现了原库的全部 api \ No newline at end of file diff --git a/README.md b/README.md index caf583e..21da975 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@ #### 项目介绍 - 项目名称:加载动画 - 所属系列:openharmony的第三方组件适配移植 -- 功能:一个自定义加载的动画组件。 -- 基线版本: Release 1.4.0 +- 功能:12种自定义加载动画的动画组 - 项目移植状态:主功能完成 - 调用差异:无 -- 开发版本:sdk5,DevEco Studio2.1 Release +- 开发版本:sdk6,DevEco Studio2.2 Beta1 +- 基线版本: Release 1.4.0 #### 效果演示 @@ -22,12 +22,12 @@ } 2.在entry模块的build.gradle文件中, dependencies { - implementation('com.gitee.chinasoft_ohos:mkloader:0.0.1-SNAPSHOT') + implementation('com.gitee.chinasoft_ohos:mkloader:0.0.2-SNAPSHOT') ...... } -在sdk5,DevEco Studio2.1 Release下项目可直接运行 +在sdk6,DevEco Studio2.2 Beta1下项目可直接运行 如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下 @@ -65,14 +65,14 @@ CodeCheck代码测试无异常 CloudTest代码测试无异常 -火绒安全病毒安全检测通过 +病毒安全检测通过 当前版本demo功能与原组件基本无差异 当前版本demo,部分功能暂不支持模拟器运行 #### 版本迭代 -0.0.1-SNAPSHOT +- 0.0.2-SNAPSHOT #### 版权和许可信息 diff --git a/build.gradle b/build.gradle index fe7a6b0..a8a5c41 100644 --- a/build.gradle +++ b/build.gradle @@ -19,8 +19,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.huawei.ohos:hap:2.4.4.2' - classpath 'com.huawei.ohos:decctest:1.0.0.6' + classpath 'com.huawei.ohos:hap:2.4.5.0' + classpath 'com.huawei.ohos:decctest:1.2.4.1' } } diff --git a/entry/build.gradle b/entry/build.gradle index 46559b9..7bf3a65 100644 --- a/entry/build.gradle +++ b/entry/build.gradle @@ -1,9 +1,9 @@ apply plugin: 'com.huawei.ohos.hap' apply plugin: 'com.huawei.ohos.decctest' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { - compatibleSdkVersion 4 + compatibleSdkVersion 5 } buildTypes { release { @@ -20,7 +20,8 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) testImplementation 'junit:junit:4.13' ohosTestImplementation 'com.huawei.ohos.testkit:runner:1.0.0.100' - implementation('com.gitee.chinasoft_ohos:mkloader:0.0.1-SNAPSHOT') + implementation('com.gitee.chinasoft_ohos:mkloader:0.0.2-SNAPSHOT') + // compile project(path: ':library') } decc { supportType = ['html', 'xml'] diff --git a/entry/src/main/config.json b/entry/src/main/config.json index 620e556..fb9fe9d 100644 --- a/entry/src/main/config.json +++ b/entry/src/main/config.json @@ -7,8 +7,8 @@ "name": "1.0" }, "apiVersion": { - "compatible": 4, - "target": 5 + "compatible": 5, + "target": 6 } }, "deviceConfig": {}, diff --git a/library/build.gradle b/library/build.gradle index e1c0b27..7e1e475 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,8 +1,8 @@ apply plugin: 'com.huawei.ohos.library' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { - compatibleSdkVersion 4 + compatibleSdkVersion 5 } buildTypes { release { diff --git a/library/src/main/config.json b/library/src/main/config.json index e5eaabe..6853f11 100644 --- a/library/src/main/config.json +++ b/library/src/main/config.json @@ -7,8 +7,8 @@ "name": "1.0" }, "apiVersion": { - "compatible": 4, - "target": 5, + "compatible": 5, + "target": 6, "releaseType": "Beta1" } }, diff --git a/library/src/main/java/com/tuyenmonkey/mkloader/MKLoader.java b/library/src/main/java/com/tuyenmonkey/mkloader/MKLoader.java index fc52442..a05a9f2 100644 --- a/library/src/main/java/com/tuyenmonkey/mkloader/MKLoader.java +++ b/library/src/main/java/com/tuyenmonkey/mkloader/MKLoader.java @@ -16,11 +16,6 @@ public class MKLoader extends Component implements Component.BindStateChangedLis Component.DrawTask { private LoaderView loaderView; - public MKLoader(Context context) { - super(context); - initialize(context, null, 0); - } - public MKLoader(Context context, AttrSet attrs) { super(context, attrs); initialize(context, attrs, 0); diff --git a/library/src/main/java/com/tuyenmonkey/mkloader/type/FishSpinner.java b/library/src/main/java/com/tuyenmonkey/mkloader/type/FishSpinner.java index df785f7..8bd75f1 100644 --- a/library/src/main/java/com/tuyenmonkey/mkloader/type/FishSpinner.java +++ b/library/src/main/java/com/tuyenmonkey/mkloader/type/FishSpinner.java @@ -5,6 +5,8 @@ import ohos.agp.animation.Animator; import ohos.agp.animation.AnimatorValue; import ohos.agp.render.Canvas; +import java.math.BigDecimal; + /** * Created by Tuyen Nguyen on 2/12/17. */ @@ -13,7 +15,6 @@ public class FishSpinner extends LoaderView{ private Circle[] circles; private int numberOfCircle; private float[] rotates; - private Canvas canvas; public FishSpinner() { numberOfCircle = 5; @@ -29,7 +30,8 @@ public class FishSpinner extends LoaderView{ circles[i] = new Circle(); circles[i].setCenter(center.getPointX(), circleRadius); circles[i].setColor(color); - circles[i].setRadius(circleRadius - circleRadius * i / 6); + circles[i].setRadius(new BigDecimal(circleRadius).subtract(new BigDecimal(circleRadius).multiply(new BigDecimal(i)).divide(new BigDecimal(6))).floatValue()); + } } @@ -55,7 +57,6 @@ public class FishSpinner extends LoaderView{ } @Override public void draw(Canvas canvas) { - this.canvas = canvas; for (int i = 0; i < numberOfCircle; i++) { canvas.save(); canvas.rotate(rotates[i], center.getPointX(), center.getPointY()); diff --git a/library/src/main/java/com/tuyenmonkey/mkloader/type/LineSpinner.java b/library/src/main/java/com/tuyenmonkey/mkloader/type/LineSpinner.java index a76b0fd..2576ffb 100644 --- a/library/src/main/java/com/tuyenmonkey/mkloader/type/LineSpinner.java +++ b/library/src/main/java/com/tuyenmonkey/mkloader/type/LineSpinner.java @@ -5,6 +5,8 @@ import ohos.agp.animation.AnimatorValue; import ohos.agp.render.Canvas; import ohos.agp.utils.Point; +import java.math.BigDecimal; + public class LineSpinner extends LoaderView{ private Line[] lines; private int numberOfLine; @@ -23,8 +25,10 @@ public class LineSpinner extends LoaderView{ lines[i].setColor(color); lines[i].setAlpha(126); lines[i].setWidth(lineWidth); - lines[i].setPoint1(new Point(center.getPointX(), center.getPointY() - size / 2f + lineWidth)); - lines[i].setPoint2(new Point(center.getPointX(), lines[i].getPoint1().getPointY() + 2 * lineWidth)); + lines[i].setPoint1(new Point(center.getPointX(), new BigDecimal(center.getPointY()).subtract(new BigDecimal(size).divide(new BigDecimal(2))).add(new BigDecimal(lineWidth)).floatValue())); + + lines[i].setPoint2(new Point(center.getPointX(), new BigDecimal(lines[i].getPoint1().getPointY()).add(new BigDecimal(2).multiply(new BigDecimal(lineWidth))).floatValue())); + } } diff --git a/library/src/main/java/com/tuyenmonkey/mkloader/type/LoaderView.java b/library/src/main/java/com/tuyenmonkey/mkloader/type/LoaderView.java index 2341bfd..20fe14d 100644 --- a/library/src/main/java/com/tuyenmonkey/mkloader/type/LoaderView.java +++ b/library/src/main/java/com/tuyenmonkey/mkloader/type/LoaderView.java @@ -16,7 +16,6 @@ public abstract class LoaderView{ protected int desiredWidth, desiredHeight; protected Point center; protected InvalidateListener invalidateListener; - private Element.OnChangeListener mCallback; public LoaderView() { this.desiredWidth = 150; diff --git a/library/src/main/java/com/tuyenmonkey/mkloader/type/PhoneWave.java b/library/src/main/java/com/tuyenmonkey/mkloader/type/PhoneWave.java index 668f0c3..62796ef 100644 --- a/library/src/main/java/com/tuyenmonkey/mkloader/type/PhoneWave.java +++ b/library/src/main/java/com/tuyenmonkey/mkloader/type/PhoneWave.java @@ -6,6 +6,8 @@ import ohos.agp.render.Canvas; import ohos.agp.render.Paint; import ohos.agp.utils.RectFloat; +import java.math.BigDecimal; + public class PhoneWave extends LoaderView { private Arc[] arcs; @@ -20,11 +22,16 @@ public class PhoneWave extends LoaderView { arcs = new Arc[numberOfArc]; for (int i = 0; i < numberOfArc; i++) { - float d = r / 4 + i * r / 4; + float d = new BigDecimal(r).divide(new BigDecimal(4)).add(new BigDecimal(i).multiply(new BigDecimal(r)).divide(new BigDecimal(4))).floatValue(); + arcs[i] = new Arc(); arcs[i].setColor(color); arcs[i].setAlpha(126); - arcs[i].setOval(new RectFloat(center.getPointX() - d, center.getPointY() - d + r / 3, center.getPointX() + d, center.getPointY() + d + r / 3)); + arcs[i].setOval(new RectFloat(new BigDecimal(center.getPointX()).subtract(new BigDecimal(d)).floatValue() + , new BigDecimal(center.getPointY()).subtract(new BigDecimal(d)).add(new BigDecimal(r).divide(new BigDecimal(3))).floatValue() + , new BigDecimal(center.getPointX()).add(new BigDecimal(d)).floatValue() + , new BigDecimal(center.getPointY()).add(new BigDecimal(d)).add(new BigDecimal(r).divide(new BigDecimal(3))).floatValue())); + arcs[i].setStartAngle(225); arcs[i].setSweepAngle(90); arcs[i].setStyle(Paint.Style.STROKE_STYLE); diff --git a/library/src/main/java/com/tuyenmonkey/mkloader/type/Pulse.java b/library/src/main/java/com/tuyenmonkey/mkloader/type/Pulse.java index 2b31bb4..51666fd 100644 --- a/library/src/main/java/com/tuyenmonkey/mkloader/type/Pulse.java +++ b/library/src/main/java/com/tuyenmonkey/mkloader/type/Pulse.java @@ -7,6 +7,8 @@ import ohos.agp.animation.AnimatorValue; import ohos.agp.render.Canvas; import ohos.agp.utils.Point; +import java.math.BigDecimal; + public class Pulse extends LoaderView { private Line[] lines; @@ -27,15 +29,20 @@ public class Pulse extends LoaderView { } @Override public void initializeObjects() { - lineWidth = width / (2 * numberOfLines); + lineWidth = (float) width / (2 * numberOfLines); lineDistance = lineWidth / 4f; - float firstX = (width - (lineWidth * numberOfLines + lineDistance * (numberOfLines - 1))) / 2f + lineWidth / 2f; + float firstX = (new BigDecimal( (new BigDecimal(lineWidth).multiply(new BigDecimal(numberOfLines)) + .add(new BigDecimal(lineWidth).multiply(new BigDecimal(numberOfLines).subtract(new BigDecimal(1)))).floatValue() + ))).divide(new BigDecimal(2)).add(new BigDecimal(lineWidth).divide(new BigDecimal(2))) .floatValue(); + // .add(new BigDecimal(lineWidth)) for (int i = 0; i < numberOfLines; i++) { lines[i] = new Line(); lines[i].setColor(color); lines[i].setWidth(lineWidth); - lines[i].setPoint1(new Point(firstX, center.getPointY() - height / 4f)); - lines[i].setPoint2(new Point(firstX, center.getPointY() + height / 4f)); + lines[i].setPoint1(new Point(firstX, new BigDecimal(center.getPointY()).subtract(new BigDecimal(height).divide(new BigDecimal(4))).floatValue())); + + lines[i].setPoint2(new Point(firstX, new BigDecimal(center.getPointY()).add(new BigDecimal(height).divide(new BigDecimal(4))).floatValue())); + } } @@ -66,7 +73,8 @@ public class Pulse extends LoaderView { @Override public void draw(Canvas canvas) { for (int i = 0; i < numberOfLines; i++) { canvas.save(); - canvas.translate(i * (lineWidth + lineDistance), 0); + canvas.translate(i * (new BigDecimal(lineWidth).add(new BigDecimal(lineDistance)).floatValue()), 0); + canvas.scale(1, scaleY[i], lines[i].getPoint1().getPointX(), center.getPointY()); lines[i].draw(canvas); canvas.restore(); diff --git a/library/src/main/java/com/tuyenmonkey/mkloader/type/Sharingan.java b/library/src/main/java/com/tuyenmonkey/mkloader/type/Sharingan.java index b5ef669..8613592 100644 --- a/library/src/main/java/com/tuyenmonkey/mkloader/type/Sharingan.java +++ b/library/src/main/java/com/tuyenmonkey/mkloader/type/Sharingan.java @@ -16,7 +16,6 @@ public class Sharingan extends LoaderView { private float rotate; private float scale; private float eyeBoundRadius; - private float eyeBoundRadiusScale; private AnimatorValueUtil animatorValueUtil; public Sharingan() { diff --git a/library/src/main/java/com/tuyenmonkey/mkloader/util/AnimatorValueUtil.java b/library/src/main/java/com/tuyenmonkey/mkloader/util/AnimatorValueUtil.java index 603977e..3411ca5 100644 --- a/library/src/main/java/com/tuyenmonkey/mkloader/util/AnimatorValueUtil.java +++ b/library/src/main/java/com/tuyenmonkey/mkloader/util/AnimatorValueUtil.java @@ -28,8 +28,8 @@ package com.tuyenmonkey.mkloader.util; */ public class AnimatorValueUtil { private static final String TAG = "AnimatorValueUtil"; - private final int rateSize = 2; - private final int negative = -1; + private static final int rateSize = 2; + private static final int negative = -1; private float[]values; private float[][]rate; -- Gitee