diff --git a/CHANGELOG.md b/CHANGELOG.md index 2312fb6dfb7cd2c842e0ee386a4cf4806c05ae68..f5b1730703a4fe2c565601fae4159669de0fd55d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.2-SNAPSHOT + +ohos 适配SDK6 + ## 0.0.1-SNAPSHOT ohos 第一个版本,完整实现了原库的全部 api \ No newline at end of file diff --git a/README.md b/README.md index 4c3c52be3eb3c15539bf8bbd3df6d2eb979ef886..0f76f4849c764749170f0c825c3b5fa81ccebf64 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,9 @@ - 功能:openharmony 加载控件库,简洁、易用、可定制性强。用于快速实现类似 iOS 的 “加载中” 等弹出框。 - 项目移植状态:主功能完成 - 调用差异:无 +- 开发版本:sdk6,DevEco Studio2.2 Beta1(实时更新以当前最新版本为准) - 基线版本:V1.2.1 -- 开发版本:sdk5,DevEco Studio2.1 Release + #### 演示效果 @@ -17,9 +18,6 @@

-entry运行要求 -通过DevEco studio,并下载openHarmonySDK -将项目中的build.gradle文件中dependencies→classpath版本改为对应的版本(即你的IDE新建项目中所用的版本) @@ -38,12 +36,12 @@ repositories { // 添加依赖库 dependencies { -implementation('com.gitee.chinasoft_ohos:ACProgressLite:0.0.1-SNAPSHOT') +implementation('com.gitee.chinasoft_ohos:ACProgressLite:0.0.2-SNAPSHOT') ...... } ``` -在sdk5,DevEco Studio2.1 Release下项目可直接运行 +在sdk6,DevEco Studio2.2 Beta1下项目可直接运行 如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下 @@ -56,7 +54,7 @@ implementation('com.gitee.chinasoft_ohos:ACProgressLite:0.0.1-SNAPSHOT') dialog.setCanceledOnTouchOutside(true); dialog.show(dialog); ``` -例子 + 例子 * 花瓣类型 @@ -154,13 +152,15 @@ CodeCheck代码测试无异常 CloudTest代码测试无异常 -火绒安全病毒安全检测通过 +病毒安全检测通过 + +当前版本demo功能与原组件基本无差异 #### 版本迭代 -0.0.1-SNAPSHOT +0.0.2-SNAPSHOT #### 版权和许可信息 -* [MIT License] +* MIT License diff --git a/build.gradle b/build.gradle index a6c73c2dd1605c8c098fdd77442a6047e7411811..bf479ca657fb6b63c48c13c097af23041e8b2e1e 100644 --- a/build.gradle +++ b/build.gradle @@ -2,12 +2,12 @@ apply plugin: 'com.huawei.ohos.app' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } } - + buildscript { repositories { maven { @@ -16,11 +16,11 @@ buildscript { maven { url 'https://developer.huawei.com/repo/' } - jcenter() + jcenter() } dependencies { - classpath 'com.huawei.ohos:hap:2.4.4.2' - classpath 'com.huawei.ohos:decctest:1.0.0.7' + classpath 'com.huawei.ohos:hap:2.4.5.0' + classpath 'com.huawei.ohos:decctest:1.2.4.1' } } @@ -32,6 +32,6 @@ allprojects { maven { url 'https://developer.huawei.com/repo/' } - jcenter() + jcenter() } } diff --git a/entry/build.gradle b/entry/build.gradle index e39e92f62a2c7102515b3f27d33b8d23d26819db..8fd88e60be6b1083a20605c1ee292f7932b9cbb1 100644 --- a/entry/build.gradle +++ b/entry/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.huawei.ohos.hap' apply plugin: 'com.huawei.ohos.decctest' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } diff --git a/entry/src/main/config.json b/entry/src/main/config.json index 25c4f5d9802c6d27968181eebe5842da644fda31..5007add9ebb4b31685f9385928e9fe01a4bbeebe 100644 --- a/entry/src/main/config.json +++ b/entry/src/main/config.json @@ -5,11 +5,6 @@ "version": { "code": 1000000, "name": "1.0.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Release" } }, "deviceConfig": {}, diff --git a/library/build.gradle b/library/build.gradle index e1c0b274a6c5cb35b197a177a17684addf760676..7e1e475c1296e7c6d200a45810598ddff583ee7f 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 a29b2f07fb48df933ff3ff34eaee7325175afa09..c3e200877834afce444b0b10d4c9204da264c965 100644 --- a/library/src/main/config.json +++ b/library/src/main/config.json @@ -5,11 +5,6 @@ "version": { "code": 1000000, "name": "1.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Release" } }, "deviceConfig": { diff --git a/library/src/main/java/cc/cloudist/acplibrary/ACProgressCustom.java b/library/src/main/java/cc/cloudist/acplibrary/ACProgressCustom.java index 7b44c63f99113ee6e96e785ac5b50254e6a0573f..17ca4a2f342b12d8da125a50d113a2f92bc10a84 100644 --- a/library/src/main/java/cc/cloudist/acplibrary/ACProgressCustom.java +++ b/library/src/main/java/cc/cloudist/acplibrary/ACProgressCustom.java @@ -71,7 +71,7 @@ public final class ACProgressCustom extends ACProgressBaseDialog { } } } - mCustomView = new CustomView(mBuilder.mContext, size, mBitmaps); + mCustomView = new CustomView(mBuilder.mContext, mBitmaps); } setContentCustomComponent(mCustomView); this.setTransparent(true); diff --git a/library/src/main/java/cc/cloudist/acplibrary/ACProgressPie.java b/library/src/main/java/cc/cloudist/acplibrary/ACProgressPie.java index e987895f438be9f186385c2a1f9cec93d2f59abf..a9e6b8f9efb9c1b642bbd119c4c09a33ded83113 100644 --- a/library/src/main/java/cc/cloudist/acplibrary/ACProgressPie.java +++ b/library/src/main/java/cc/cloudist/acplibrary/ACProgressPie.java @@ -1,5 +1,6 @@ package cc.cloudist.acplibrary; +import java.math.BigDecimal; import java.util.Timer; import java.util.TimerTask; @@ -32,22 +33,19 @@ public class ACProgressPie extends ACProgressBaseDialog { public void show(ACProgressPie acProgressPie) { if (mPieView == null) { - int size = (int) (getMinimumSideOfScreen(mBuilder.mContext) * mBuilder.mSizeRatio); + int size = new BigDecimal(getMinimumSideOfScreen(mBuilder.mContext) ).multiply(new BigDecimal( mBuilder.mSizeRatio)).intValue(); mPieView = new PieView(mBuilder.mContext, size, mBuilder.mBackgroundColor, mBuilder.mBackgroundAlpha, mBuilder.mBackgroundCornerRadius - , mBuilder.mRingBorderPadding, mBuilder.mPieRingDistance + , mBuilder.mRingBorderPadding , mBuilder.mRingThickness, mBuilder.mRingColor, mBuilder.mRingAlpha , mBuilder.mPieColor, mBuilder.mPieAlpha); } mTimer=new Timer(); - mPieView.setTouchEventListener(new Component.TouchEventListener() { - @Override - public boolean onTouchEvent(Component component, TouchEvent touchEvent) { - if (CanceledOnTouchOutside) { - acProgressPie.hide(); - mTimer.cancel(); - } - return false; + mPieView.setTouchEventListener((component, touchEvent) -> { + if (CanceledOnTouchOutside) { + acProgressPie.hide(); + mTimer.cancel(); } + return false; }); super.setContentCustomComponent(mPieView); this.setTransparent(true); @@ -95,7 +93,6 @@ public class ACProgressPie extends ACProgressBaseDialog { private int mPieColor = Color.WHITE.getValue(); private float mPieAlpha = 0.5f; - private float mPieRingDistance = 0.08f; private float mSpeed = 6.67f; private int mPieces = 100; @@ -156,10 +153,6 @@ public class ACProgressPie extends ACProgressBaseDialog { return this; } - public Builder pieRingDistance(float distance) { - mPieRingDistance = distance; - return this; - } public Builder speed(float speed) { mSpeed = speed; diff --git a/library/src/main/java/cc/cloudist/acplibrary/views/CustomView.java b/library/src/main/java/cc/cloudist/acplibrary/views/CustomView.java index f47b5427d5c6611bef342e590b982c92f3bac067..4cc09f509fb3e80a8aa6869d13ca698c2df8c5fa 100644 --- a/library/src/main/java/cc/cloudist/acplibrary/views/CustomView.java +++ b/library/src/main/java/cc/cloudist/acplibrary/views/CustomView.java @@ -10,17 +10,17 @@ import ohos.app.Context; import ohos.media.image.PixelMap; import java.lang.ref.WeakReference; +import java.math.BigDecimal; import java.util.List; public class CustomView extends Component implements Component.EstimateSizeListener, Component.DrawTask { private List mBitmaps; - private RectFloat mRect; private int mCurrentIndex = 0; private final CustomUpdateHandler mHandler; private final Paint paint ; - public CustomView(Context context, int size, List bitmaps) { + public CustomView(Context context, List bitmaps) { super(context); mHandler = new CustomUpdateHandler(this); @@ -29,7 +29,6 @@ public class CustomView extends Component implements Component.EstimateSizeListe paint.setStrokeWidth(60); paint.setStrokeCap(Paint.StrokeCap.ROUND_CAP); paint.setStyle(Paint.Style.STROKE_STYLE); - mRect = new RectFloat(0, 0, (float) size /2, (float)size /2); mBitmaps = bitmaps; setEstimateSizeListener(this); addDrawTask(this); @@ -49,10 +48,10 @@ public class CustomView extends Component implements Component.EstimateSizeListe int center = width / 2; int inRadius = center - 60; double length = inRadius - Math.sqrt(2) * 1.0f / 2 * inRadius; - centerRectFloat.left = (float) (width/2-length); - centerRectFloat.top = (float) (height/2 -length); - centerRectFloat.bottom = (float) (height/2+length); - centerRectFloat.right = (float) (width/2+length); + centerRectFloat.left = new BigDecimal(width/2).subtract(new BigDecimal(length)).floatValue(); + centerRectFloat.top = new BigDecimal (height/2 ).subtract(new BigDecimal(length)).floatValue(); + centerRectFloat.bottom =new BigDecimal (height/2).add((new BigDecimal(length))).floatValue(); + centerRectFloat.right = new BigDecimal(width/2).add((new BigDecimal(length))).floatValue(); canvas.drawPixelMapHolderRect(new PixelMapHolder(pixelMap), centerRectFloat, paint); } diff --git a/library/src/main/java/cc/cloudist/acplibrary/views/FlowerView.java b/library/src/main/java/cc/cloudist/acplibrary/views/FlowerView.java index 40523e2d2ddb108e93342ee207655d5e4ded9e72..f5492732d6cbde521d0896f7f26c14bf90f5f81b 100644 --- a/library/src/main/java/cc/cloudist/acplibrary/views/FlowerView.java +++ b/library/src/main/java/cc/cloudist/acplibrary/views/FlowerView.java @@ -12,13 +12,13 @@ import ohos.agp.utils.TextAlignment; import ohos.app.Context; import java.lang.ref.WeakReference; +import java.math.BigDecimal; import java.util.List; public final class FlowerView extends Component implements Component.EstimateSizeListener, Component.DrawTask { private int mSize; - private int mFinalSize; private int mPetalCount; private float mBackgroundCornerRadius; @@ -32,7 +32,7 @@ public final class FlowerView extends Component implements Component.EstimateSiz private String mText; private final Context mContext; - private int mTextHeight, mTextWidth; + private int mTextHeight; private int mTextMarginTop; private final FlowerUpdateHandler mHandler; private final int windowWidth; @@ -91,15 +91,15 @@ public final class FlowerView extends Component implements Component.EstimateSiz mTextPaint.getTextBounds(text); mTextPaint.setTextAlign(TextAlignment.CENTER); mTextHeight = mTextPaint.getTextBounds(text).getHeight(); - mTextWidth = mTextPaint.getTextBounds(text).getWidth(); } else { mTextMarginTop = 0; } height = (int) Utils.getScreenHeight(mContext); - mBackgroundRect = new RectFloat((float) (windowWidth - mSize) / 2-mTextHeight, (float) height / 2 - size, (float) (windowWidth - mSize+20) / 2 + mSize+mTextHeight, (float) height / 2 + mTextHeight + mTextMarginTop); - mFinalSize = mSize; + mBackgroundRect = new RectFloat(new BigDecimal((windowWidth - mSize)/2).subtract(new BigDecimal(mTextHeight)).floatValue(), + new BigDecimal(height / 2).subtract(new BigDecimal(size)).floatValue(), + new BigDecimal((windowWidth - mSize+20) / 2).add(new BigDecimal(mSize+mTextHeight)).floatValue(),new BigDecimal (height / 2 + mTextHeight + mTextMarginTop).floatValue()); FlowerDataCalc calc = new FlowerDataCalc(petalCount); mPetalCoordinates = calc.getSegmentsCoordinates(mSize, (int) (borderPadding * mSize), (int) (centerPadding * mSize), petalCount, windowWidth); @@ -121,7 +121,10 @@ public final class FlowerView extends Component implements Component.EstimateSiz int index = (mCurrentFocusIndex + i) % mPetalCount; mPetalPaint.setColor(new Color(mPetalColors[index])); - canvas.drawLine(coordinate.getStartX(), ((float) height / 2 - coordinate.getStartY()), coordinate.getEndX(), (float) height / 2 - coordinate.getEndY(), mPetalPaint); + canvas.drawLine(coordinate.getStartX(), (new BigDecimal(height / 2).subtract (new BigDecimal(coordinate.getStartY()) ).floatValue()), coordinate.getEndX(), + new BigDecimal(height / 2).subtract (new BigDecimal(coordinate.getEndY())) .floatValue(), mPetalPaint); + + } if (mText != null) { canvas.drawText(mTextPaint, mText, (float) windowWidth / 2, (float) height / 2); diff --git a/library/src/main/java/cc/cloudist/acplibrary/views/PieView.java b/library/src/main/java/cc/cloudist/acplibrary/views/PieView.java index 6d7653271683db57b98b6b8ace914fa67393851b..e545fcce1d1cc9d0ba80c4bac58e7c60dc7a4bcc 100644 --- a/library/src/main/java/cc/cloudist/acplibrary/views/PieView.java +++ b/library/src/main/java/cc/cloudist/acplibrary/views/PieView.java @@ -11,6 +11,7 @@ import ohos.agp.utils.RectFloat; import ohos.app.Context; import java.lang.ref.WeakReference; +import java.math.BigDecimal; public final class PieView extends Component implements Component.EstimateSizeListener, Component.DrawTask { @@ -32,11 +33,10 @@ public final class PieView extends Component implements Component.EstimateSizeLi private final int width; public PieView( Context context, int size, int bgColor, float bgAlpha, float bgCornerRadius - , float ringBorderPadding, float pieRingDistance + , float ringBorderPadding , int ringThickness, int ringColor, float ringAlpha , int pieColor, float pieAlpha) { super(context); - mHandler = new PieUpdateHandler(this); this.mContext=context; mSize = size; @@ -44,9 +44,19 @@ public final class PieView extends Component implements Component.EstimateSizeLi mRingBorderPadding = ringBorderPadding; height= (int) Utils.getScreenHeight(mContext); width= (int) Utils.getScreenWidth(mContext); - mBackgroundRect = new RectFloat((float)(width/2-size/2),(float)(height/2-size/2),(float)(width/2+size/2),(float)(height/2+size/2)); - float R=(mSize * (1 - mRingBorderPadding)) / 2-10; - mPieRect =new RectFloat((float)width/2-R,(float)height/2-R,(float)width/2+R,(float)height/2+R);; + float left= (new BigDecimal(width).subtract(new BigDecimal(size)) ).divide(new BigDecimal(2)).floatValue(); + float top= (new BigDecimal(height).subtract(new BigDecimal(size)) ).divide(new BigDecimal(2)).floatValue(); + float right= (new BigDecimal(width).add(new BigDecimal(size)) ).divide(new BigDecimal(2)).floatValue(); + float bottom= (new BigDecimal(height).add(new BigDecimal(size)) ).divide(new BigDecimal(2)).floatValue(); + + mBackgroundRect = new RectFloat(left,top,right,bottom); + float R= new BigDecimal(mSize).multiply(new BigDecimal(1).subtract(new BigDecimal(mRingBorderPadding))).divide(new BigDecimal(2)).subtract(new BigDecimal(10)).floatValue(); + float leftPie= new BigDecimal(width).divide(new BigDecimal(2)).subtract(new BigDecimal(R)).floatValue(); + BigDecimal divide = new BigDecimal(height).divide(new BigDecimal(2)); + float topPie= divide.subtract(new BigDecimal(R)).floatValue(); + float rightPie= new BigDecimal(width).divide(new BigDecimal(2)).add(new BigDecimal(R)).floatValue(); + float bottomPie= divide.add(new BigDecimal(R)).floatValue(); + mPieRect =new RectFloat(leftPie,topPie,rightPie,bottomPie);; mBackgroundPaint = new Paint(); mBackgroundPaint.setAntiAlias(true); mBackgroundPaint.setColor(new Color(bgColor)); @@ -77,7 +87,7 @@ public final class PieView extends Component implements Component.EstimateSizeLi public void onDraw(Component component, Canvas canvas) { mBackgroundPaint.setAlpha(0.3f); canvas.drawRoundRect(mBackgroundRect, mBackgroundCornerRadius, mBackgroundCornerRadius, mBackgroundPaint); - canvas.drawCircle((float)width/2, (float)height / 2, (mSize * (1 - mRingBorderPadding)) / 2, mRingPaint); + canvas.drawCircle(new BigDecimal(width/2).floatValue() , new BigDecimal(height / 2).floatValue(), new BigDecimal(mSize).multiply(new BigDecimal(1).subtract(new BigDecimal(mRingBorderPadding))).divide(new BigDecimal(2)).floatValue(), mRingPaint); canvas.drawArc(mPieRect, new Arc(-90, mAngle, true), mPiePaint); }