diff --git a/README.md b/README.md
index 61a81ff58788aca0e0281f4d5b5f5eeeb5442756..3b5bf20cd4f4bfab4154d67d28e16c9e7a3cb527 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
# tooltips
#### 项目介绍
-- 项目名称:tooltips。
-- 所属系列:openharmony的第三方组件适配移植。
-- 功能:易于使用的ohos库,可轻松在任何视图附近添加工具提示。
-- 项目移植状态:目前openharmony不支持加载.9图拉伸功能。
+- 项目名称:tooltips
+- 所属系列:openharmony的第三方组件适配移植
+- 功能:易于使用的ohos库,可轻松在任何视图附近添加工具提示
+- 项目移植状态:目前openharmony不支持加载.9图拉伸功能
- 调用差异:无
- 基线版本:Release v1.1
- 开发版本:sdk5,DevEco Studio2.1 beta4
@@ -119,9 +119,8 @@ CloudTest代码测试无异常
#### 版本迭代
- ```
- 0.0.1-SNAPSHOT
- ```
+
#### 版权和许可信息
```
Copyright 2016 Tomer Goldstein
diff --git a/app/build.gradle b/app/build.gradle
index 9d526d8af2ced369732b3ddc435127256e3d58db..31f1b234f9be0076f0d1957653402aa2ad874ec0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -21,7 +21,7 @@ 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:RWidgetHelper:0.0.3-SNAPSHOT')
+ implementation('com.gitee.chinasoft_ohos:RWidgetHelper:0.0.1-SNAPSHOT')
implementation project(path : ':tooltips')
}
diff --git a/app/src/main/resources/base/layout/ability_main.xml b/app/src/main/resources/base/layout/ability_main.xml
index 619f3e9740ae2bc610b356f7ac3164d979863694..3fef582bb648ee67a8cd64ca341f9c3e11227be1 100644
--- a/app/src/main/resources/base/layout/ability_main.xml
+++ b/app/src/main/resources/base/layout/ability_main.xml
@@ -92,7 +92,7 @@
ohos:vertical_center="true"
ohos:background_element="$graphic:background_text_right"
ohos:right_of="$id:ima_right_center"
- ohos:left_margin="-10vp"
+ ohos:left_margin="-3vp"
/>
@@ -248,7 +249,7 @@
ohos:top_padding="10vp"
ohos:padding="15vp"
ohos:align_parent_right="true"
- ohos:bottom_margin="-8vp"
+ ohos:bottom_margin="-3vp"
/>
@@ -335,7 +336,7 @@
ohos:id="$+id:ima_below_left"
ohos:height="match_content"
ohos:width="match_content"
- ohos:left_padding="5vp"
+ ohos:left_padding="10vp"
ohos:image_src="$media:media_up"
ohos:horizontal_center="true"
ohos:align_parent_left="true"
@@ -346,7 +347,7 @@
ohos:height="match_content"
ohos:width="match_content"
ohos:below="$id:ima_below_left"
- ohos:text=""
+ ohos:text="dsadsad"
ohos:padding="12fp"
ohos:multiple_lines="true"
ohos:text_color="$color:colorWhile"
@@ -372,7 +373,7 @@
ohos:id="$+id:ima_below_right"
ohos:height="match_content"
ohos:width="match_content"
- ohos:left_padding="5vp"
+ ohos:right_padding="5vp"
ohos:image_src="$media:media_up"
ohos:horizontal_center="true"
ohos:align_parent_right="true"
@@ -383,7 +384,7 @@
ohos:height="match_content"
ohos:width="match_content"
ohos:below="$id:ima_below_right"
- ohos:text="dsaDsadsadsadsadsadasdasdsad"
+ ohos:text="dsaDsadsad"
ohos:padding="12fp"
ohos:multiple_lines="true"
ohos:text_color="$color:colorWhile"
diff --git a/tooltips/build.gradle b/tooltips/build.gradle
index f6bde8b1c0182462b3f266a09f0d083da422bed4..4b5173f941ac87d66b817a12003b92d48fd27f83 100644
--- a/tooltips/build.gradle
+++ b/tooltips/build.gradle
@@ -17,6 +17,6 @@ ohos {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation('com.gitee.chinasoft_ohos:RWidgetHelper:0.0.3-SNAPSHOT')
+ implementation('com.gitee.chinasoft_ohos:RWidgetHelper:0.0.1-SNAPSHOT')
testImplementation 'junit:junit:4.13'
}
diff --git a/tooltips/src/main/java/com/tomergoldst/tooltipshm/DefaultToolTipAnimator.java b/tooltips/src/main/java/com/tomergoldst/tooltipshm/DefaultToolTipAnimator.java
index 71264858dc1185ccae221e5d56e56cda2bd419f5..ee0ac940993978213b49354185a807c1ac2e054f 100644
--- a/tooltips/src/main/java/com/tomergoldst/tooltipshm/DefaultToolTipAnimator.java
+++ b/tooltips/src/main/java/com/tomergoldst/tooltipshm/DefaultToolTipAnimator.java
@@ -18,7 +18,6 @@ import ohos.agp.animation.Animator;
import ohos.agp.animation.AnimatorProperty;
import ohos.agp.components.Component;
import ohos.agp.components.DependentLayout;
-import ohos.agp.components.Image;
import ohos.agp.components.Text;
class DefaultToolTipAnimator implements ToolTipAnimator {
@@ -26,7 +25,7 @@ class DefaultToolTipAnimator implements ToolTipAnimator {
public AnimatorProperty popup(Text view, DependentLayout image, long duration) {
view.setVisibility(Component.VISIBLE);
AnimatorProperty abovePopup = new AnimatorProperty();
- abovePopup.alphaFrom(0).alpha(90).setCurveType(new Animator.CurveType().ANTICIPATE).setDuration(500);
+ abovePopup.alphaFrom(0).alpha(90).setCurveType(new Animator.CurveType().ANTICIPATE).setDuration(300);
abovePopup.setTarget(image);
abovePopup.start();
return abovePopup;
diff --git a/tooltips/src/main/java/com/tomergoldst/tooltipshm/ToolTipsManager.java b/tooltips/src/main/java/com/tomergoldst/tooltipshm/ToolTipsManager.java
index 4a91789e9a26bb3b7565eb026de28bf4e7d5d5ad..c1537ad7cab3c63054a264151b00d572c7b8e5b8 100644
--- a/tooltips/src/main/java/com/tomergoldst/tooltipshm/ToolTipsManager.java
+++ b/tooltips/src/main/java/com/tomergoldst/tooltipshm/ToolTipsManager.java
@@ -20,11 +20,8 @@ import com.ruffian.library.widget.component.RRadioButton;
import ohos.agp.animation.Animator;
import ohos.agp.animation.AnimatorProperty;
import ohos.agp.components.*;
-import ohos.agp.components.element.PixelMapElement;
import ohos.agp.utils.TextAlignment;
-import ohos.global.resource.NotExistException;
-import java.io.IOException;
import java.util.List;
public class ToolTipsManager {
@@ -83,7 +80,6 @@ public class ToolTipsManager {
private Text tvAboveRight;
private Text belowImageLeft;
private Text belowImageRight;
-
/**
* empty build ToolTipsManager
*/
@@ -113,10 +109,12 @@ public class ToolTipsManager {
this.checkboxLeft = checkList.get(ZERO);
checkboxCenter = checkList.get(FIRST);
checkboxRight = checkList.get(TWO);
+
mAboveBtn = buttons.get(ZERO);
mBelowBtn = buttons.get(FIRST);
mLeftToBtn = buttons.get(TWO);
mRightToBtn = buttons.get(THREE);
+
idAboveImageview = texts.get(ZERO);
idBelowimageView = texts.get(FIRST);
leftImageView = texts.get(TWO);
@@ -126,6 +124,8 @@ public class ToolTipsManager {
tvAboveRight = texts.get(SIX);
belowImageLeft = texts.get(SEVEN);
belowImageRight = texts.get(Eight);
+
+
dlAboveleft = dependentLayouts.get(ZERO);
dlAboveCenter = dependentLayouts.get(FIRST);
dlAboveRight = dependentLayouts.get(TWO);
@@ -172,55 +172,33 @@ public class ToolTipsManager {
}
}
- /**
- * @param idImageview
- * @param imaLeftAbove
- * @param resource
- */
- private void create(Text idImageview,Image imaLeftAbove, int resource) {
+ private void createAbove(Text idImageview,Image imaLeftAbove, int resource) {
ToolTipBackgroundConstructor.setAboveBackground(idImageview,imaLeftAbove, resource);
}
-
- /**
- * @param idImageview
- * @param imaLeftAbove
- * @param resource
- */
private void createLeft(Text idImageview,Image imaLeftAbove, int resource) {
ToolTipBackgroundConstructor.setLeftBackground(idImageview,imaLeftAbove, resource);
}
-
- /**
- * @param idImageview
- * @param imaLeftAbove
- * @param resource
- */
private void createRight(Text idImageview,Image imaLeftAbove, int resource) {
ToolTipBackgroundConstructor.setRightBackground(idImageview,imaLeftAbove, resource);
}
-
- /**
- * @param idImageview
- * @param imaLeftAbove
- * @param resource
- */
private void createBelow(Text idImageview,Image imaLeftAbove, int resource) {
ToolTipBackgroundConstructor.setBelowBackground(idImageview,imaLeftAbove, resource);
}
-
/**
- * show above
+ * 展示顶部位置
*/
public void showAbove() {
dlAboveCenter.setVisibility(Component.VISIBLE);
+ imacenterAbove.setVisibility(Component.VISIBLE);
String textAbove = com.tomergoldst.tooltipshm.TextUtils.isEmpty(mEditText.getText()) ? TIP_TEXT : mEditText.getText().toString();
idAboveImageview.setText(textAbove);
idAboveImageview.setTextAlignment(TextAlignment.CENTER);
idAboveImageview.setVisibility(Component.VISIBLE);
- create(idAboveImageview,imacenterAbove, ResourceTable.Media_arrow_down);
+ createAbove(idAboveImageview,imacenterAbove, ResourceTable.Media_arrow_down);
visableabove();
mToolTipAnimator.popup(idAboveImageview,dlAboveCenter, mAnimationDuration).start();
- dlAboveRight.setClickedListener(component -> findAndDismiss(dlAboveRight));
+ idAboveImageview.setClickedListener(component -> findAndDismiss(dlAboveCenter,imacenterAbove));
+ dlAboveCenter.setClickedListener(component -> findAndDismiss(dlAboveCenter,imacenterAbove));
}
private void visableabove(){
@@ -236,15 +214,17 @@ public class ToolTipsManager {
public void showAboveLeft() {
dlAboveleft.setVisibility(Component.VISIBLE);
+ imaAboveLeft.setVisibility(Component.VISIBLE);
String textAbove = com.tomergoldst.tooltipshm.TextUtils.isEmpty(mEditText.getText()) ? TIP_TEXT : mEditText.getText().toString();
tvAboveLeft.setText(textAbove);
tvAboveLeft.setTextAlignment(TextAlignment.CENTER);
tvAboveLeft.setVisibility(Component.VISIBLE);
//ToolTipCoordinatesFinder.getPositionAbove(idAboveImageview, showTextView);
- create(tvAboveLeft,imaAboveLeft, ResourceTable.Media_arrow_down);
+ createAbove(tvAboveLeft,imaAboveLeft, ResourceTable.Media_arrow_down);
visableaboveLeft();
mToolTipAnimator.popup(tvAboveLeft,dlAboveleft, mAnimationDuration).start();
- dlAboveRight.setClickedListener(component -> findAndDismiss(dlAboveRight));
+ tvAboveLeft.setClickedListener(component -> findAndDismiss(dlAboveleft,imaAboveLeft));
+ imaAboveLeft.setClickedListener(component -> findAndDismiss(dlAboveleft,imaAboveLeft));
}
private void visableaboveLeft(){
@@ -260,14 +240,16 @@ public class ToolTipsManager {
public void showAboveRight() {
dlAboveRight.setVisibility(Component.VISIBLE);
+ imaAboveRight.setVisibility(Component.VISIBLE);
String textAbove = com.tomergoldst.tooltipshm.TextUtils.isEmpty(mEditText.getText()) ? TIP_TEXT : mEditText.getText().toString();
tvAboveRight.setText(textAbove);
tvAboveRight.setTextAlignment(TextAlignment.CENTER);
tvAboveRight.setVisibility(Component.VISIBLE);
- create(tvAboveRight,imaAboveRight, ResourceTable.Media_arrow_down);
+ //ToolTipCoordinatesFinder.getPositionAbove(idAboveImageview, showTextView);
+ createAbove(tvAboveRight,imaAboveRight, ResourceTable.Media_arrow_down);
visableaboveRight();
mToolTipAnimator.popup(tvAboveRight,dlAboveRight, mAnimationDuration).start();
- dlAboveRight.setClickedListener(component -> findAndDismiss(dlAboveRight));
+ dlAboveRight.setClickedListener(component -> findAndDismiss(dlAboveRight,imaAboveRight));
}
private void visableaboveRight(){
@@ -287,13 +269,15 @@ public class ToolTipsManager {
*/
public void showBelow() {
dlBelowCenter.setVisibility(Component.VISIBLE);
+ imaBelowCenter.setVisibility(Component.VISIBLE);
String textBelow = com.tomergoldst.tooltipshm.TextUtils.isEmpty(mEditText.getText()) ? TIP_TEXT : mEditText.getText().toString();
createBelow(idBelowimageView,imaBelowCenter,ResourceTable.Media_media_up);
idBelowimageView.setVisibility(Component.VISIBLE);
ToolTipCoordinatesFinder.getPositionBelow(textBelow, idBelowimageView, showTextView);
visableBelow();
mToolTipAnimator.popup(idBelowimageView,dlBelowCenter,mAnimationDuration).start();
- dlBelowCenter.setClickedListener(component -> findAndDismiss(dlBelowCenter));
+ idBelowimageView.setClickedListener(component -> findAndDismiss(dlBelowCenter,imaBelowCenter));
+ imaBelowCenter.setClickedListener(component -> findAndDismiss(dlBelowCenter,imaBelowCenter));
}
private void visableBelow(){
@@ -309,6 +293,7 @@ public class ToolTipsManager {
public void showBelowLeft() {
dlBelowLeft.setVisibility(Component.VISIBLE);
+ imaBelowLeft.setVisibility(Component.VISIBLE);
String textBelow = com.tomergoldst.tooltipshm.TextUtils.isEmpty(mEditText.getText()) ? TIP_TEXT : mEditText.getText().toString();
belowImageLeft.setText(textBelow);
belowImageLeft.setTextAlignment(TextAlignment.CENTER);
@@ -318,7 +303,7 @@ public class ToolTipsManager {
//ToolTipCoordinatesFinder.getPositionBelow(textBelow, idBelowimageView, showTextView);
visableBelowLeft();
mToolTipAnimator.popup(belowImageLeft,dlBelowLeft,mAnimationDuration).start();
- dlBelowLeft.setClickedListener(component -> findAndDismiss(dlBelowLeft));
+ dlBelowLeft.setClickedListener(component -> findAndDismiss(dlBelowLeft,imaBelowLeft));
}
private void visableBelowLeft(){
@@ -335,12 +320,13 @@ public class ToolTipsManager {
public void showBelowRight() {
dlBelowRight.setVisibility(Component.VISIBLE);
+ imaBelowRight.setVisibility(Component.VISIBLE);
String textBelow = com.tomergoldst.tooltipshm.TextUtils.isEmpty(mEditText.getText()) ? TIP_TEXT : mEditText.getText().toString();
createBelow(belowImageRight,imaBelowRight,ResourceTable.Media_media_up);
ToolTipCoordinatesFinder.getPositionBelow(textBelow, belowImageRight, showTextView);
visableBelowRight();
mToolTipAnimator.popup(belowImageRight,dlBelowRight,mAnimationDuration).start();
- dlBelowRight.setClickedListener(component -> findAndDismiss(dlBelowRight));
+ dlBelowRight.setClickedListener(component -> findAndDismiss(dlBelowRight,imaBelowRight));
}
private void visableBelowRight(){
@@ -362,6 +348,7 @@ public class ToolTipsManager {
*/
public void showLeft() {
leftDlView.setVisibility(Component.VISIBLE);
+ imaLeftCenter.setVisibility(Component.VISIBLE);
String textLeft = TextUtils.isEmpty(mEditText.getText()) ? TIP_TEXT_SMALL : mEditText.getText().toString();
leftImageView.setVisibility(Component.VISIBLE);
createLeft(leftImageView,imaLeftCenter, ResourceTable.Media_arrow_left);
@@ -369,7 +356,8 @@ public class ToolTipsManager {
leftImageView.setTextAlignment(TextAlignment.CENTER);
visableLeft();
mToolTipAnimator.popup(leftImageView,leftDlView,mAnimationDuration).start();
- leftImageView.setClickedListener(component -> findAndDismiss(dlAboveRight));
+ leftImageView.setClickedListener(component -> findAndDismiss(leftDlView,imaLeftCenter));
+ imaLeftCenter.setClickedListener(component -> dismissAll());
}
private void visableLeft(){
@@ -388,13 +376,15 @@ public class ToolTipsManager {
*/
public void showRight() {
rightDlView.setVisibility(Component.VISIBLE);
+ imaRightCenter.setVisibility(Component.VISIBLE);
String textRight = TextUtils.isEmpty(mEditText.getText()) ? TIP_TEXT_LARGE : mEditText.getText().toString();
rightDlView.setVisibility(Component.VISIBLE);
createRight(rightImageView,imaRightCenter, ResourceTable.Media_arrow_right);
ToolTipCoordinatesFinder.getPositionRightTo(textRight, showTextView, rightImageView);
visableRight();
mToolTipAnimator.popup(rightImageView,rightDlView, mAnimationDuration).start();
- rightDlView.setClickedListener(component -> findAndDismiss(rightDlView));
+ rightImageView.setClickedListener(component -> findAndDismiss(rightDlView,imaRightCenter));
+ imaRightCenter.setClickedListener(component -> findAndDismiss(rightDlView,imaRightCenter));
}
private void visableRight(){
@@ -431,10 +421,14 @@ public class ToolTipsManager {
animatorValue.setTarget(dlInitLayout);
animatorValue.start();
dlInitLayout.setVisibility(Component.HIDE);
- idAboveImageview.setVisibility(Component.HIDE);
- idBelowimageView.setVisibility(Component.HIDE);
- rightImageView.setVisibility(Component.HIDE);
- leftImageView.setVisibility(Component.HIDE);
+ dlAboveRight.setVisibility(Component.HIDE);
+ dlAboveleft.setVisibility(Component.HIDE);
+ dlAboveCenter.setVisibility(Component.HIDE);
+ rightDlView.setVisibility(Component.HIDE);
+ leftDlView.setVisibility(Component.HIDE);
+ dlBelowLeft.setVisibility(Component.HIDE);
+ dlBelowCenter.setVisibility(Component.HIDE);
+ dlBelowLeft.setVisibility(Component.HIDE);
}
/**
@@ -454,9 +448,10 @@ public class ToolTipsManager {
*
* @param view
*/
- public void findAndDismiss(DependentLayout view) {
+ public void findAndDismiss(DependentLayout view,Image image) {
view.setVisibility(Component.HIDE);
- isAnimateDismiss(view);
+ image.setVisibility(Component.HIDE);
+ isAnimateDismiss(view,image);
}
/**
@@ -464,10 +459,11 @@ public class ToolTipsManager {
*
* @param view
*/
- private void isAnimateDismiss(final DependentLayout view) {
+ private void isAnimateDismiss(final DependentLayout view,Image image) {
AnimatorProperty abovePopup = new AnimatorProperty();
abovePopup.alphaFrom(0).alpha(0).setCurveType(new Animator.CurveType().ANTICIPATE).setDuration(1000);
abovePopup.setTarget(view);
+ abovePopup.setTarget(image);
abovePopup.start();
}
@@ -486,7 +482,7 @@ public class ToolTipsManager {
@Override
public void onClick(Component component) {
showAboveLeft();
- create(idAboveImageview,imaAboveLeft, ResourceTable.Media_arrow_down);
+ createAbove(idAboveImageview,imaAboveLeft, ResourceTable.Media_arrow_down);
}
});
mBelowBtn.setClickedListener(new Component.ClickedListener() {
@@ -530,7 +526,7 @@ public class ToolTipsManager {
@Override
public void onClick(Component component) {
showAbove();
- create(idAboveImageview,imacenterAbove, ResourceTable.Media_arrow_down);
+ createAbove(idAboveImageview,imacenterAbove, ResourceTable.Media_arrow_down);
}
});
mBelowBtn.setClickedListener(new Component.ClickedListener() {
@@ -576,7 +572,7 @@ public class ToolTipsManager {
@Override
public void onClick(Component component) {
showAboveRight();
- create(tvAboveRight,imaAboveRight, ResourceTable.Media_arrow_down);
+ createAbove(tvAboveRight,imaAboveRight, ResourceTable.Media_arrow_down);
}
});
diff --git a/tooltips/src/main/resources/base/media/arrow_down.png b/tooltips/src/main/resources/base/media/arrow_down.png
index 12a3826ed8ba1a93b7c18f727bdfa034c9e4cd68..e65f328d1bbb995ddc7d0acbd97633b39fef0847 100644
Binary files a/tooltips/src/main/resources/base/media/arrow_down.png and b/tooltips/src/main/resources/base/media/arrow_down.png differ
diff --git a/tooltips/src/main/resources/base/media/arrow_left.png b/tooltips/src/main/resources/base/media/arrow_left.png
index 220079b5ae71ba181b1d5bebddf70b95e4104388..b40ceed3deca1e92310870dfdb7f640acf079fc6 100644
Binary files a/tooltips/src/main/resources/base/media/arrow_left.png and b/tooltips/src/main/resources/base/media/arrow_left.png differ
diff --git a/tooltips/src/main/resources/base/media/arrow_right.png b/tooltips/src/main/resources/base/media/arrow_right.png
index 5e129217bce00ec25093a97a8b39218bd248a831..1f3740d6d0b0c19c1464c11e97b7110ef80d2eef 100644
Binary files a/tooltips/src/main/resources/base/media/arrow_right.png and b/tooltips/src/main/resources/base/media/arrow_right.png differ
diff --git a/tooltips/src/main/resources/base/media/media_up.png b/tooltips/src/main/resources/base/media/media_up.png
index 74a96e098b9006662d57e36272bb8a81728c0000..e9c4eab05aa0d9acdbd423a1bf2d5983b15f845d 100644
Binary files a/tooltips/src/main/resources/base/media/media_up.png and b/tooltips/src/main/resources/base/media/media_up.png differ