diff --git a/.gitignore b/.gitignore index f1f83f4d886c82e621880d4ae1d8636517011e8d..e4ea5a1ebdc69399ec8e72608d8d1e9cd86fc22d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.iml .gradle +.idea /local.properties /.idea/caches /.idea/libraries diff --git a/CHANGELOG.md b/CHANGELOG.md index 62c8f7971a2d7aedb3d5e2dbe99146647f751db0..fbf0161cc2870c388cc88accc950a4787420b355 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,5 @@ +##0.0.2-SNAPSHOT +ohos 第二个版本,修复了findbugs问题,更新SDK6 + ## 0.0.1-SNAPSHOT ohos第一个版本,完整实现了原库的全部api diff --git a/README.md b/README.md index 3b3b0288f4daa6700706601e17f7e08b759a8a86..735ea63d4433e29027ff23b2d79f8c2c4dbc632a 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ - 功能:实现可以展开/折叠的Text控件 - 项目移植状态:主功能完成 - 调用差异:无 -- 开发版本:sdk5,DevEco Studio 2.1 Release +- 开发版本:sdk6,DevEco Studio2.2 Bate1 - 基线版本:Release v0.1.3 #### 效果演示 @@ -27,12 +27,12 @@ allprojects { 2.在entry模块的build.gradle文件中, ```gradle dependencies { - implementation('com.gitee.chinasoft_ohos:ExpandableTextView:0.0.1-SNAPSHOT') + implementation('com.gitee.chinasoft_ohos:ExpandableTextView:0.0.2-SNAPSHOT') ...... } ``` -在sdk5,DevEco Studio 2.1 Release下项目可直接运行 +在sdk6,DevEco Studio2.2 Bate1下项目可直接运行 如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下 @@ -113,7 +113,7 @@ CloudTest代码测试无异常 #### 版本迭代 -- 0.0.1-SNAPSHOT +- 0.0.2-SNAPSHOT #### 版权和许可信息 diff --git a/build.gradle b/build.gradle index 6dc578fc53cd5f3f28061c83bb9c82bb11d306d7..58e1cd2b1242734387f7c7bd9624744b8f2ed57e 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.huawei.ohos.app' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } @@ -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 d030f3560365b403f00b56a17bac5fd6955a3c22..f66785e7e18e2843c407617ea1ee0953516e3b50 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 78c260cf4dfe0ca6259dcde80191bd3d5f1f9b8c..11c38f6b725ec875ae671edc65319bb5091e509f 100644 --- a/entry/src/main/config.json +++ b/entry/src/main/config.json @@ -1,20 +1,15 @@ { "app": { - "bundleName": "com.ms.square.ohos.expandabletext.sample", + "bundleName": "com.ms.square.ohos.expandabletextview.sample", "vendor": "hos", "version": { "code": 1000000, - "name": "1.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Release" + "name": "1.0.0" } }, "deviceConfig": {}, "module": { - "package": "com.ms.square.ohos.expandabletext.sample", + "package": "com.ms.square.ohos.expandabletextview.sample", "name": ".MyApplication", "deviceType": [ "phone" @@ -46,7 +41,7 @@ } ], "orientation": "unspecified", - "name": "com.ms.square.ohos.expandabletext.sample.MainAbility", + "name": "com.ms.square.ohos.expandabletextview.sample.MainAbility", "icon": "$media:icon", "description": "$string:mainability_description", "label": "$string:app_name", diff --git a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/MainAbility.java b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/MainAbility.java similarity index 89% rename from entry/src/main/java/com/ms/square/ohos/expandabletext/sample/MainAbility.java rename to entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/MainAbility.java index 8dd97547af0a0c6c5e8482a7469875e8ad245a97..e9495dec71d52b8d788a5b8523aef4cc22e53d00 100644 --- a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/MainAbility.java +++ b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/MainAbility.java @@ -12,9 +12,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.ms.square.ohos.expandabletext.sample; +package com.ms.square.ohos.expandabletextview.sample; -import com.ms.square.ohos.expandabletext.sample.slice.MainAbilitySlice; +import com.ms.square.ohos.expandabletextview.sample.slice.MainAbilitySlice; import ohos.aafwk.ability.Ability; import ohos.aafwk.content.Intent; import ohos.agp.components.ComponentContainer; diff --git a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/MyApplication.java b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/MyApplication.java similarity index 93% rename from entry/src/main/java/com/ms/square/ohos/expandabletext/sample/MyApplication.java rename to entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/MyApplication.java index 446fead9983cb391002588b5586993486b2cc230..50c1ced3c6c8e7cee74f83f8ea8a2f2644e65c94 100644 --- a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/MyApplication.java +++ b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/MyApplication.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.ms.square.ohos.expandabletext.sample; +package com.ms.square.ohos.expandabletextview.sample; import ohos.aafwk.ability.AbilityPackage; diff --git a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/provider/ListProvider.java b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/adapter/ListAdapter.java similarity index 86% rename from entry/src/main/java/com/ms/square/ohos/expandabletext/sample/provider/ListProvider.java rename to entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/adapter/ListAdapter.java index 9ab9998b77ea7590926d4f3f41c8e99de227a2b2..7f76d08e3a50bd7d73b78e27a8995938c92c8b98 100644 --- a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/provider/ListProvider.java +++ b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/adapter/ListAdapter.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package com.ms.square.ohos.expandabletext.sample.provider; +package com.ms.square.ohos.expandabletextview.sample.adapter; import ohos.agp.components.BaseItemProvider; import ohos.agp.components.Component; @@ -24,18 +24,17 @@ import ohos.app.Context; import java.util.List; /** - * author zhaoxudong * Version 1.0 * ModifiedBy * date 2021-03-15 10:13 * description 列表数据适配器 */ -public abstract class ListProvider extends BaseItemProvider { +public abstract class ListAdapter extends BaseItemProvider { private List data; private Context ct; private int itemId; - public ListProvider(Context ct, int itemId, List data) { + public ListAdapter(Context ct, int itemId, List data) { this.data = data; this.ct = ct; this.itemId = itemId; @@ -62,7 +61,7 @@ public abstract class ListProvider extends BaseItemProvider { public Component getComponent(int i, Component component, ComponentContainer componentContainer) { ViewHolder viewHolder; Component itemView = LayoutScatter.getInstance(ct).parse(itemId, componentContainer, false); - viewHolder = new ViewHolder(ct, itemView, componentContainer, i); + viewHolder = new ViewHolder(itemView); convert(viewHolder, getItem(i), i); return itemView; } diff --git a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/provider/MainPagerSlideProvider.java b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/adapter/MainPagerAdapter.java similarity index 88% rename from entry/src/main/java/com/ms/square/ohos/expandabletext/sample/provider/MainPagerSlideProvider.java rename to entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/adapter/MainPagerAdapter.java index b5ac246c64df53e39a8ef32a17fb932a8478dbd8..303f085ccb6f9529b5b8008388d674d564311a06 100644 --- a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/provider/MainPagerSlideProvider.java +++ b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/adapter/MainPagerAdapter.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package com.ms.square.ohos.expandabletext.sample.provider; +package com.ms.square.ohos.expandabletextview.sample.adapter; import ohos.agp.components.Component; import ohos.agp.components.ComponentContainer; @@ -23,13 +23,12 @@ import java.util.ArrayList; import java.util.List; /** - * author zhaoxudong * Version 1.0 * ModifiedBy * date 2021-03-15 10:13 * description PageSlider适配器 */ -public class MainPagerSlideProvider extends PageSliderProvider { +public class MainPagerAdapter extends PageSliderProvider { private List pages; /** @@ -37,7 +36,7 @@ public class MainPagerSlideProvider extends PageSliderProvider { * * @param pages 页面 */ - public MainPagerSlideProvider(ArrayList pages) { + public MainPagerAdapter(ArrayList pages) { this.pages = pages; } diff --git a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/provider/ViewHolder.java b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/adapter/ViewHolder.java similarity index 75% rename from entry/src/main/java/com/ms/square/ohos/expandabletext/sample/provider/ViewHolder.java rename to entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/adapter/ViewHolder.java index de207f23f50b6085d3dc1da2c310517c211f5808..502a406d3a4b7fdc794a597772fb4b894c1ba1fd 100644 --- a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/provider/ViewHolder.java +++ b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/adapter/ViewHolder.java @@ -12,37 +12,28 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.ms.square.ohos.expandabletext.sample.provider; +package com.ms.square.ohos.expandabletextview.sample.adapter; import ohos.agp.components.Component; -import ohos.agp.components.ComponentContainer; -import ohos.app.Context; import java.util.HashMap; /** - * author zhaoxudong * Version 1.0 * ModifiedBy * date 2021-03-15 10:13 * description ViewHolder */ public class ViewHolder { - int position; - int layoutId; private Component component; - private Context context; private HashMap views; - ViewHolder(Context context, Component itemView, ComponentContainer parent, int position) { - this.context = context; + ViewHolder(Component itemView) { this.component = itemView; - this.position = position; views = new HashMap<>(0); component.setTag(this); } - @SuppressWarnings("unchecked") public T getView(int viewId) { Component view = views.get(viewId); if (view == null) { diff --git a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/slice/MainAbilitySlice.java b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/slice/MainAbilitySlice.java similarity index 91% rename from entry/src/main/java/com/ms/square/ohos/expandabletext/sample/slice/MainAbilitySlice.java rename to entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/slice/MainAbilitySlice.java index 0610185c770aba22d13fb9d9645ef77dd5322c12..87b598669869f9190b74c5762ca74732ab926f56 100644 --- a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/slice/MainAbilitySlice.java +++ b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/slice/MainAbilitySlice.java @@ -13,11 +13,11 @@ * limitations under the License. */ -package com.ms.square.ohos.expandabletext.sample.slice; +package com.ms.square.ohos.expandabletextview.sample.slice; -import com.ms.square.ohos.expandabletext.sample.ResourceTable; -import com.ms.square.ohos.expandabletext.sample.provider.MainPagerSlideProvider; -import com.ms.square.ohos.expandabletext.sample.utils.ViewCreateHelper; +import com.ms.square.ohos.expandabletextview.sample.ResourceTable; +import com.ms.square.ohos.expandabletextview.sample.adapter.MainPagerAdapter; +import com.ms.square.ohos.expandabletextview.sample.utils.ViewCreateHelper; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.colors.RgbColor; @@ -36,7 +36,6 @@ import java.io.IOException; import java.util.ArrayList; /** - * author zhaoxudong * Version 1.0 * ModifiedBy * date 2021-03-15 10:13 @@ -85,7 +84,7 @@ public class MainAbilitySlice extends AbilitySlice implements TabList.TabSelecte tabList.addTab(tab); } tabList.selectTabAt(0); - pageSlider.setProvider(new MainPagerSlideProvider(initPageSliderViewData())); + pageSlider.setProvider(new MainPagerAdapter(initPageSliderViewData())); pageSlider.setCurrentPage(0); pageSlider.setReboundEffect(true); pageSlider.setCentralScrollMode(true); @@ -95,10 +94,13 @@ public class MainAbilitySlice extends AbilitySlice implements TabList.TabSelecte } private ArrayList initPageSliderViewData() { + if (tabList == null) { + HiLog.debug(HI_LOG_LABEL, "initPageSliderViewData tabList is null"); + return null; + } ArrayList pages = new ArrayList<>(); int pageSize = tabList.getTabCount(); - if (tabList == null || pageSize < 1) { - HiLog.debug(HI_LOG_LABEL, "initPageSliderViewData tabList is null"); + if (pageSize < 1) { return pages; } ViewCreateHelper viewCreateHelper = new ViewCreateHelper(getContext()); diff --git a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/utils/MyToast.java b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/utils/MyToast.java similarity index 97% rename from entry/src/main/java/com/ms/square/ohos/expandabletext/sample/utils/MyToast.java rename to entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/utils/MyToast.java index 859bc923bebc257de709c96de63e50d9c8373513..bfc84dd1da09db0ef17628e85ffbe59daccbb36f 100644 --- a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/utils/MyToast.java +++ b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/utils/MyToast.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.ms.square.ohos.expandabletext.sample.utils; +package com.ms.square.ohos.expandabletextview.sample.utils; import ohos.agp.colors.RgbColor; import ohos.agp.components.DirectionalLayout; @@ -26,7 +26,6 @@ import ohos.agp.window.service.DisplayManager; import ohos.app.Context; /** - * author zhaoxudong * Version 1.0 * ModifiedBy * date 2021-03-05 14:46 diff --git a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/utils/ViewCreateHelper.java b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/utils/ViewCreateHelper.java similarity index 78% rename from entry/src/main/java/com/ms/square/ohos/expandabletext/sample/utils/ViewCreateHelper.java rename to entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/utils/ViewCreateHelper.java index 8a0ec4b3b3b597d9d439c4deb2841fec37b19eaa..92e395c2879470353c667f0d23e255186d1f2721 100644 --- a/entry/src/main/java/com/ms/square/ohos/expandabletext/sample/utils/ViewCreateHelper.java +++ b/entry/src/main/java/com/ms/square/ohos/expandabletextview/sample/utils/ViewCreateHelper.java @@ -12,12 +12,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.ms.square.ohos.expandabletext.sample.utils; +package com.ms.square.ohos.expandabletextview.sample.utils; -import com.ms.square.ohos.expandabletext.ExpandableText; -import com.ms.square.ohos.expandabletext.sample.ResourceTable; -import com.ms.square.ohos.expandabletext.sample.provider.ListProvider; -import com.ms.square.ohos.expandabletext.sample.provider.ViewHolder; +import com.ms.square.ohos.expandabletextview.ExpandableTextView; +import com.ms.square.ohos.expandabletextview.sample.ResourceTable; +import com.ms.square.ohos.expandabletextview.sample.adapter.ListAdapter; +import com.ms.square.ohos.expandabletextview.sample.adapter.ViewHolder; import ohos.agp.components.*; import ohos.agp.render.Paint; import ohos.app.Context; @@ -28,7 +28,6 @@ import java.util.ArrayList; import java.util.List; /** - * author zhaoxudong * Version 1.0 * ModifiedBy * date 2021-03-15 10:13 @@ -73,16 +72,19 @@ public final class ViewCreateHelper { scrollView.enableScrollBar(1, true); ComponentContainer rootLayout = (ComponentContainer) mainComponent; DirectionalLayout root = (DirectionalLayout) rootLayout.findComponentById(ResourceTable.Id_root); + if (null == root){ + return rootLayout; + } int itemCount = root.getChildCount(); - if (root != null && itemCount > 0) { + if (itemCount > 0) { for (int index = 0; index < itemCount; index++) { Component component = root.getComponentAt(index); Text titleText = (Text) component.findComponentById(ResourceTable.Id_title); titleText.setText("Sample " + (index + 1)); - ExpandableText expandableText = (ExpandableText) + ExpandableTextView expandableTextView = (ExpandableTextView) component.findComponentById(ResourceTable.Id_expandable); - expandableText.setText(slice.getString(ResourceTable.String_dummy_text2)); - expandableText.setOnExpandStateChangeListener(new ExpandableText.OnExpandStateChangeListener() { + expandableTextView.setText(slice.getString(ResourceTable.String_dummy_text2)); + expandableTextView.setOnExpandStateChangeListener(new ExpandableTextView.OnExpandStateChangeListener() { @Override public void onExpandStateChanged(Text textView) { @@ -108,32 +110,33 @@ public final class ViewCreateHelper { } } - private int getFontHeight(int fontSize) { + private float getFontHeight(int fontSize) { Paint paint = new Paint(); paint.setTextSize(fontSize); Paint.FontMetrics fm = paint.getFontMetrics(); - return (int) (Math.ceil(fm.descent - fm.top) + DEFAULT) * MAX_COLLAPSED_LINES; + + return (float) ((Math.ceil((double) fm.descent - (double) fm.top) + DEFAULT) * MAX_COLLAPSED_LINES); } - ListProvider listProvider = null; + ListAdapter listAdapter = null; private void initView(Component mainComponent, String title) { // 列表 ListContainer listContainer = (ListContainer) mainComponent.findComponentById(ResourceTable.Id_list_main); listContainer.enableScrollBar(1, true); - listProvider = new ListProvider(slice, ResourceTable.Layout_text_item, getData()) { + listAdapter = new ListAdapter(slice, ResourceTable.Layout_text_item, getData()) { @Override public void convert(ViewHolder viewHolder, String item, int position) { Text text = viewHolder.getView(ResourceTable.Id_expandable_text); text.setTag(position + ""); - text.setHeight(getFontHeight(text.getTextSize())); - ExpandableText expandableText = viewHolder.getView(ResourceTable.Id_expandable); - expandableText.setText(slice.getString(ResourceTable.String_dummy_text2)); - expandableText.setOnExpandStateChangeListener(new ExpandableText.OnExpandStateChangeListener() { + text.setHeight((int) getFontHeight(text.getTextSize())); + ExpandableTextView expandableTextView = viewHolder.getView(ResourceTable.Id_expandable); + expandableTextView.setText(slice.getString(ResourceTable.String_dummy_text2)); + expandableTextView.setOnExpandStateChangeListener(new ExpandableTextView.OnExpandStateChangeListener() { @Override public void onExpandStateChanged(Text textView) { int position = Integer.valueOf(textView.getTag().toString()).intValue(); - listProvider.notifyDataSetItemChanged(position + 1); + listAdapter.notifyDataSetItemChanged(position + 1); } @Override @@ -153,7 +156,7 @@ public final class ViewCreateHelper { } } }); - listContainer.setItemProvider(listProvider); + listContainer.setItemProvider(listAdapter); listContainer.setItemClickedListener(new ListContainer.ItemClickedListener() { @Override public void onItemClicked(ListContainer listContainer, Component component, int position, long l) { diff --git a/entry/src/main/resources/base/layout/text_item.xml b/entry/src/main/resources/base/layout/text_item.xml index 10dac9d9e59d7e02dca605869d9ec3438e643fde..3ad58a10c0afc6333091d30955abdb41a628a254 100644 --- a/entry/src/main/resources/base/layout/text_item.xml +++ b/entry/src/main/resources/base/layout/text_item.xml @@ -6,7 +6,7 @@ ohos:width="match_parent" ohos:orientation="vertical"> - - + - - + \ No newline at end of file diff --git a/entry/src/ohosTest/config.json b/entry/src/ohosTest/config.json index 08c607d90dedb19501703b0c5edc6514ef91dc40..7ce86206d8fecc333510045bcd7ec2201771cecb 100644 --- a/entry/src/ohosTest/config.json +++ b/entry/src/ohosTest/config.json @@ -1,9 +1,9 @@ { "app": { - "bundleName": "com.hos.expandabletext", + "bundleName": "com.hos.expandabletextview", "vendor": "hos", "version": { - "code": 1000000, + "code": 1, "name": "1.0" }, "apiVersion": { @@ -14,7 +14,7 @@ }, "deviceConfig": {}, "module": { - "package": "com.hos.expandabletext", + "package": "com.hos.expandabletextview", "name": "testModule", "deviceType": [ "phone" diff --git a/entry/src/ohosTest/java/com/hos/expandabletext/ExampleOhosTest.java b/entry/src/ohosTest/java/com/hos/expandabletextview/ExampleOhosTest.java similarity index 92% rename from entry/src/ohosTest/java/com/hos/expandabletext/ExampleOhosTest.java rename to entry/src/ohosTest/java/com/hos/expandabletextview/ExampleOhosTest.java index 73a6de71c1def8cc5580d32284c4a2b231d2994d..5a391233b51b8c05270f8566a045ca99e99e083d 100644 --- a/entry/src/ohosTest/java/com/hos/expandabletext/ExampleOhosTest.java +++ b/entry/src/ohosTest/java/com/hos/expandabletextview/ExampleOhosTest.java @@ -1,4 +1,4 @@ -package com.hos.expandabletext; +package com.hos.expandabletextview; import ohos.aafwk.ability.delegation.AbilityDelegatorRegistry; import org.junit.Test; diff --git a/entry/src/test/java/com/hos/expandabletext/ExampleTest.java b/entry/src/test/java/com/hos/expandabletext/ExampleTest.java deleted file mode 100644 index e8ac3354eaef7267c0a35f5cddd923d70e18be25..0000000000000000000000000000000000000000 --- a/entry/src/test/java/com/hos/expandabletext/ExampleTest.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.hos.expandabletext; - -import org.junit.Test; - -public class ExampleTest { - @Test - public void onStart() { - } -} diff --git a/lib/build.gradle b/lib/build.gradle index fbf9832181d4608becebbeb8f469fb6210600d0c..d5ee65bbf9bcfb996297049bb0c93314c583d56c 100644 --- a/lib/build.gradle +++ b/lib/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.huawei.ohos.library' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } diff --git a/lib/src/main/config.json b/lib/src/main/config.json index 8c0c9108b083eb5db93846b7785c7028420b5f13..c1564b6ae997eef6102fc228f9a016c2c3e16624 100644 --- a/lib/src/main/config.json +++ b/lib/src/main/config.json @@ -1,20 +1,15 @@ { "app": { - "bundleName": "com.ms.square.ohos.expandabletext", + "bundleName": "com.ms.square.ohos.expandabletextview", "vendor": "loopj", "version": { "code": 1000000, - "name": "1.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Release" + "name": "1.0.0" } }, "deviceConfig": {}, "module": { - "package": "com.ms.square.ohos.expandabletext", + "package": "com.ms.square.ohos.expandabletextview", "deviceType": [ "phone" ], @@ -22,14 +17,6 @@ "deliveryWithInstall": true, "moduleName": "lib", "moduleType": "har" - }, - "reqPermissions": [ - { - "name": "ohos.permission.INTERNET" - }, - { - "name": "ohos.permission.READ_USER_STORAGE" - } - ] + } } } \ No newline at end of file diff --git a/lib/src/main/java/com/ms/square/ohos/expandabletext/ExpandableText.java b/lib/src/main/java/com/ms/square/ohos/expandabletextview/ExpandableTextView.java similarity index 91% rename from lib/src/main/java/com/ms/square/ohos/expandabletext/ExpandableText.java rename to lib/src/main/java/com/ms/square/ohos/expandabletextview/ExpandableTextView.java index 133779e3fd504de215948ff26334d37f3e27ed9a..76c368a1d1ea8e3a4b793d3ed3aabcceff045c54 100644 --- a/lib/src/main/java/com/ms/square/ohos/expandabletext/ExpandableText.java +++ b/lib/src/main/java/com/ms/square/ohos/expandabletextview/ExpandableTextView.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.ms.square.ohos.expandabletext; +package com.ms.square.ohos.expandabletextview; import ohos.agp.animation.Animator; import ohos.agp.animation.AnimatorValue; @@ -34,14 +34,7 @@ import ohos.media.image.common.Size; import java.io.InputStream; import java.util.Map; -/** - * author zhaoxudong - * Version 1.0 - * ModifiedBy - * date 2021-02-22 10:12 - * description 可折叠的TextView - */ -public class ExpandableText extends DirectionalLayout implements +public class ExpandableTextView extends DirectionalLayout implements Component.EstimateSizeListener, Component.ClickedListener, ComponentContainer.ArrangeListener { private static final HiLogLabel logLabel = new HiLogLabel(HiLog.LOG_APP, 0x00101, "ExpandableTextView"); @@ -67,8 +60,7 @@ public class ExpandableText extends DirectionalLayout implements private int mCollapsedHeight; - private int mTextHeightWithMaxLines; - private int singleTextHeight; + private double singleTextHeight; /** * 内容展示Text */ @@ -115,15 +107,14 @@ public class ExpandableText extends DirectionalLayout implements private int mPosition; private int mStartHeight; private int expendTextHeight; - private Context context; /** * 构造函数 * * @param context Context */ - public ExpandableText(Context context) { - this(context, null); + public ExpandableTextView(Context context) { + super(context); } /** @@ -132,9 +123,8 @@ public class ExpandableText extends DirectionalLayout implements * @param context Context * @param attrSet AttrSet */ - public ExpandableText(Context context, AttrSet attrSet) { + public ExpandableTextView(Context context, AttrSet attrSet) { super(context, attrSet); - this.context = context; init(attrSet); } @@ -145,7 +135,7 @@ public class ExpandableText extends DirectionalLayout implements * @param attrSet AttrSet * @param styleName styleName */ - public ExpandableText(Context context, AttrSet attrSet, String styleName) { + public ExpandableTextView(Context context, AttrSet attrSet, String styleName) { super(context, attrSet, styleName); init(attrSet); } @@ -229,14 +219,16 @@ public class ExpandableText extends DirectionalLayout implements public void onUpdate(AnimatorValue animatorValue, float interpolatedTime) { final int newHeight; if (mCollapsed) { - newHeight = (int) ((mCollapsedHeight - getHeight()) * interpolatedTime + getHeight()); + newHeight = (mCollapsedHeight - getHeight()) * (int) interpolatedTime + getHeight(); } else { - int mEndHeight = mStartHeight + singleTextHeight * 7 - expendTextHeight; - newHeight = (int) ((mEndHeight - mStartHeight) * interpolatedTime + mStartHeight); + double mEndHeight = mStartHeight + singleTextHeight * 7 - expendTextHeight; + newHeight = ((int) mEndHeight - mStartHeight) * (int) interpolatedTime + mStartHeight; } expandText.setHeight(newHeight - mMarginBetweenTxtAndBottom); if (Float.compare(animAlphaStart, 1.0f) != 0) { - applyAlphaAnimation(expandText, animAlphaStart + interpolatedTime * (1.0f - animAlphaStart)); + double result = (double) interpolatedTime * ((double)1 - (double)animAlphaStart); + double alphaResult = animAlphaStart + result; + applyAlphaAnimation(expandText, (float) alphaResult); } getContext().getUITaskDispatcher().delayDispatch(new Runnable() { @@ -274,8 +266,6 @@ public class ExpandableText extends DirectionalLayout implements if (expandText.getMaxTextLines() <= maxCollapsedLines) { return false; } - // Saves the text height w/ max lines - mTextHeightWithMaxLines = getRealTextViewHeight(expandText); // Doesn't fit in collapsed mode. Collapse text view as needed. Show // button. if (mCollapsed) { @@ -301,13 +291,14 @@ public class ExpandableText extends DirectionalLayout implements * @param fontSize 字体大小 * @return 行高 */ - private int getFontHeight(int fontSize) { + private double getFontHeight(int fontSize) { Paint paint = new Paint(); paint.setTextSize(fontSize); Paint.FontMetrics fm = paint.getFontMetrics(); - return (int) Math.ceil(fm.descent - fm.top) + 2; + return Math.ceil((double) fm.descent - (double) fm.top) + 2; } + private void init(AttrSet attrs) { initAttrs(attrs); // enforces vertical orientation @@ -317,20 +308,14 @@ public class ExpandableText extends DirectionalLayout implements } - private int getRealTextViewHeight(Text textView) { - int textHeight = textView.getHeight(); - int padding = textView.getPaddingTop() + textView.getPaddingBottom(); - return textHeight + padding; - } - //绘制的回调 final private DrawTask mDrawTask = new DrawTask() { @Override public void onDraw(Component component, Canvas canvas) { //add测量的回调 - setEstimateSizeListener(ExpandableText.this); + setEstimateSizeListener(ExpandableTextView.this); //add布局的回调 - setArrangeListener(ExpandableText.this); + setArrangeListener(ExpandableTextView.this); findViews(); } diff --git a/lib/src/main/java/com/ms/square/ohos/expandabletext/TypedAttrUtils.java b/lib/src/main/java/com/ms/square/ohos/expandabletextview/TypedAttrUtils.java similarity index 95% rename from lib/src/main/java/com/ms/square/ohos/expandabletext/TypedAttrUtils.java rename to lib/src/main/java/com/ms/square/ohos/expandabletextview/TypedAttrUtils.java index 82867487e9c2df02167af55e57e03b36410084b9..29dff4331c60a15bd370e0ce1868543495dc630f 100644 --- a/lib/src/main/java/com/ms/square/ohos/expandabletext/TypedAttrUtils.java +++ b/lib/src/main/java/com/ms/square/ohos/expandabletextview/TypedAttrUtils.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.ms.square.ohos.expandabletext; +package com.ms.square.ohos.expandabletextview; import ohos.agp.components.Attr; @@ -23,13 +23,6 @@ import ohos.hiviewdfx.HiLogLabel; import java.util.NoSuchElementException; -/** - * author zhaoxudong - * Version 1.0 - * ModifiedBy - * date 2021-02-22 10:12 - * description 工具类 - */ public final class TypedAttrUtils { static final HiLogLabel label = new HiLogLabel(HiLog.LOG_APP, 0x00201, "jiangbenfu");