From e120007af0e65635a2b453fa377e6e8f765343f9 Mon Sep 17 00:00:00 2001 From: litongzhou Date: Mon, 12 Apr 2021 11:44:55 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E7=A7=BB=E6=A4=8D=E8=87=B3ohos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/.gitignore | 1 - app/build.gradle | 27 -- app/proguard-rules.pro | 17 - .../autoverticaltextview/ApplicationTest.java | 13 - app/src/main/AndroidManifest.xml | 20 - .../autoverticaltextview/MainActivity.java | 56 --- app/src/main/res/layout/activity_main.xml | 18 - app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 3418 -> 0 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 2206 -> 0 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4842 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 7718 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 10486 -> 0 bytes app/src/main/res/values-w820dp/dimens.xml | 6 - app/src/main/res/values/colors.xml | 6 - app/src/main/res/values/dimens.xml | 5 - app/src/main/res/values/strings.xml | 3 - app/src/main/res/values/styles.xml | 11 - .../autoverticaltextview/ExampleUnitTest.java | 15 - autoscrolltextview/build.gradle | 24 +- autoscrolltextview/proguard-rules.pro | 17 - .../src/main/AndroidManifest.xml | 12 - .../autoscrolltextview/VerticalTextview.java | 392 +++++++++++++----- .../src/main/res/values/strings.xml | 3 - .../autoscrolltextview/ExampleUnitTest.java | 15 - build.gradle | 31 +- gradle.properties | 14 +- gradlew | 109 +++-- gradlew.bat | 33 +- settings.gradle | 2 +- 29 files changed, 399 insertions(+), 451 deletions(-) delete mode 100644 app/.gitignore delete mode 100644 app/build.gradle delete mode 100644 app/proguard-rules.pro delete mode 100644 app/src/androidTest/java/com/paradoxie/autoverticaltextview/ApplicationTest.java delete mode 100644 app/src/main/AndroidManifest.xml delete mode 100644 app/src/main/java/com/paradoxie/autoverticaltextview/MainActivity.java delete mode 100644 app/src/main/res/layout/activity_main.xml delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/values-w820dp/dimens.xml delete mode 100644 app/src/main/res/values/colors.xml delete mode 100644 app/src/main/res/values/dimens.xml delete mode 100644 app/src/main/res/values/strings.xml delete mode 100644 app/src/main/res/values/styles.xml delete mode 100644 app/src/test/java/com/paradoxie/autoverticaltextview/ExampleUnitTest.java delete mode 100644 autoscrolltextview/proguard-rules.pro delete mode 100644 autoscrolltextview/src/main/AndroidManifest.xml delete mode 100644 autoscrolltextview/src/main/res/values/strings.xml delete mode 100644 autoscrolltextview/src/test/java/com/paradoxie/autoscrolltextview/ExampleUnitTest.java diff --git a/app/.gitignore b/app/.gitignore deleted file mode 100644 index 796b96d..0000000 --- a/app/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/app/build.gradle b/app/build.gradle deleted file mode 100644 index b9f3128..0000000 --- a/app/build.gradle +++ /dev/null @@ -1,27 +0,0 @@ -apply plugin: 'com.android.application' - -android { - compileSdkVersion 24 - buildToolsVersion "24.0.0" - - defaultConfig { - applicationId "com.paradoxie.autoverticaltextview" - minSdkVersion 14 - targetSdkVersion 24 - versionCode 1 - versionName "1.0" - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } -} - -dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - testCompile 'junit:junit:4.12' - compile 'com.android.support:appcompat-v7:24.0.0' - compile 'com.github.paradoxie:AutoVerticalTextview:0.1' -} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro deleted file mode 100644 index 5fcd592..0000000 --- a/app/proguard-rules.pro +++ /dev/null @@ -1,17 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /Users/xiehehe/Library/Android/sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/app/src/androidTest/java/com/paradoxie/autoverticaltextview/ApplicationTest.java b/app/src/androidTest/java/com/paradoxie/autoverticaltextview/ApplicationTest.java deleted file mode 100644 index 22021fa..0000000 --- a/app/src/androidTest/java/com/paradoxie/autoverticaltextview/ApplicationTest.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.paradoxie.autoverticaltextview; - -import android.app.Application; -import android.test.ApplicationTestCase; - -/** - * Testing Fundamentals - */ -public class ApplicationTest extends ApplicationTestCase { - public ApplicationTest() { - super(Application.class); - } -} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml deleted file mode 100644 index 6519910..0000000 --- a/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/java/com/paradoxie/autoverticaltextview/MainActivity.java b/app/src/main/java/com/paradoxie/autoverticaltextview/MainActivity.java deleted file mode 100644 index 28715bc..0000000 --- a/app/src/main/java/com/paradoxie/autoverticaltextview/MainActivity.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.paradoxie.autoverticaltextview; - -import android.graphics.Color; -import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.widget.Toast; - -import com.paradoxie.autoscrolltextview.VerticalTextview; - -import java.util.ArrayList; - -public class MainActivity extends AppCompatActivity { - private VerticalTextview TextView; - private ArrayList titleList = new ArrayList(); - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - init(); - } - - private void init() { - TextView = (VerticalTextview) findViewById(R.id.text); - titleList.add("你是天上最受宠的一架钢琴"); - titleList.add("我是丑人脸上的鼻涕"); - titleList.add("你发出完美的声音"); - titleList.add("我被默默揩去"); - titleList.add("你冷酷外表下藏着诗情画意"); - titleList.add("我已经够胖还吃东西"); - titleList.add("你踏着七彩祥云离去"); - titleList.add("我被留在这里"); - TextView.setTextList(titleList); - TextView.setText(26, 5, Color.RED);//设置属性 - TextView.setTextStillTime(3000);//设置停留时长间隔 - TextView.setAnimTime(300);//设置进入和退出的时间间隔 - TextView.setOnItemClickListener(new VerticalTextview.OnItemClickListener() { - @Override - public void onItemClick(int position) { - Toast.makeText(MainActivity.this, "点击了 : " + titleList.get(position), Toast.LENGTH_SHORT).show(); - } - }); - } - - @Override - protected void onResume() { - super.onResume(); - TextView.startAutoScroll(); - } - - @Override - protected void onPause() { - super.onPause(); - TextView.stopAutoScroll(); - } -} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml deleted file mode 100644 index 6fe76e9..0000000 --- a/app/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index cde69bcccec65160d92116f20ffce4fce0b5245c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3418 zcmZ{nX*|@A^T0p5j$I+^%FVhdvMbgt%d+mG98ubwNv_tpITppba^GiieBBZGI>I89 zGgm8TA>_)DlEu&W;s3#ZUNiH4&CF{a%siTjzG;eOzQB6{003qKeT?}z_5U*{{kgZ; zdV@U&tqa-&4FGisjMN8o=P}$t-`oTM2oeB5d9mHPgTYJx4jup)+5a;Tke$m708DocFzDL>U$$}s6FGiy_I1?O zHXq`q884|^O4Q*%V#vwxqCz-#8i`Gu)2LeB0{%%VKunOF%9~JcFB9MM>N00M`E~;o zBU%)O5u-D6NF~OQV7TV#JAN;=Lylgxy0kncoQpGq<<_gxw`FC=C-cV#$L|(47Hatl ztq3Jngq00x#}HGW@_tj{&A?lwOwrVX4@d66vLVyj1H@i}VD2YXd)n03?U5?cKtFz4 zW#@+MLeDVP>fY0F2IzT;r5*MAJ2}P8Z{g3utX0<+ZdAC)Tvm-4uN!I7|BTw&G%RQn zR+A5VFx(}r<1q9^N40XzP=Jp?i=jlS7}T~tB4CsWx!XbiHSm zLu}yar%t>-3jlutK=wdZhES->*1X({YI;DN?6R=C*{1U6%wG`0>^?u}h0hhqns|SeTmV=s;Gxx5F9DtK>{>{f-`SpJ`dO26Ujk?^%ucsuCPe zIUk1(@I3D^7{@jmXO2@<84|}`tDjB}?S#k$ik;jC))BH8>8mQWmZ zF#V|$gW|Xc_wmmkoI-b5;4AWxkA>>0t4&&-eC-J_iP(tLT~c6*(ZnSFlhw%}0IbiJ ztgnrZwP{RBd(6Ds`dM~k;rNFgkbU&Yo$KR#q&%Kno^YXF5ONJwGwZ*wEr4wYkGiXs z$&?qX!H5sV*m%5t@3_>ijaS5hp#^Pu>N_9Q?2grdNp({IZnt|P9Xyh);q|BuoqeUJ zfk(AGX4odIVADHEmozF|I{9j>Vj^jCU}K)r>^%9#E#Y6B0i#f^iYsNA!b|kVS$*zE zx7+P?0{oudeZ2(ke=YEjn#+_cdu_``g9R95qet28SG>}@Me!D6&}un*e#CyvlURrg8d;i$&-0B?4{eYEgzwotp*DOQ_<=Ai21Kzb0u zegCN%3bdwxj!ZTLvBvexHmpTw{Z3GRGtvkwEoKB1?!#+6h1i2JR%4>vOkPN_6`J}N zk}zeyY3dPV+IAyn;zRtFH5e$Mx}V(|k+Ey#=nMg-4F#%h(*nDZDK=k1snlh~Pd3dA zV!$BoX_JfEGw^R6Q2kpdKD_e0m*NX?M5;)C zb3x+v?J1d#jRGr=*?(7Habkk1F_#72_iT7{IQFl<;hkqK83fA8Q8@(oS?WYuQd4z^ z)7eB?N01v=oS47`bBcBnKvI&)yS8`W8qHi(h2na?c6%t4mU(}H(n4MO zHIpFdsWql()UNTE8b=|ZzY*>$Z@O5m9QCnhOiM%)+P0S06prr6!VET%*HTeL4iu~!y$pN!mOo5t@1 z?$$q-!uP(+O-%7<+Zn5i=)2OftC+wOV;zAU8b`M5f))CrM6xu94e2s78i&zck@}%= zZq2l!$N8~@63!^|`{<=A&*fg;XN*7CndL&;zE(y+GZVs-IkK~}+5F`?ergDp=9x1w z0hkii!N(o!iiQr`k`^P2LvljczPcM`%7~2n#|K7nJq_e0Ew;UsXV_~3)<;L?K9$&D zUzgUOr{C6VLl{Aon}zp`+fH3>$*~swkjCw|e>_31G<=U0@B*~hIE)|WSb_MaE41Prxp-2eEg!gcon$fN6Ctl7A_lV8^@B9B+G~0=IYgc%VsprfC`e zoBn&O3O)3MraW#z{h3bWm;*HPbp*h+I*DoB%Y~(Fqp9+x;c>K2+niydO5&@E?SoiX_zf+cI09%%m$y=YMA~rg!xP*>k zmYxKS-|3r*n0J4y`Nt1eO@oyT0Xvj*E3ssVNZAqQnj-Uq{N_&3e45Gg5pna+r~Z6^ z>4PJ7r(gO~D0TctJQyMVyMIwmzw3rbM!};>C@8JA<&6j3+Y9zHUw?tT_-uNh^u@np zM?4qmcc4MZjY1mWLK!>1>7uZ*%Pe%=DV|skj)@OLYvwGXuYBoZvbB{@l}cHK!~UHm z4jV&m&uQAOLsZUYxORkW4|>9t3L@*ieU&b0$sAMH&tKidc%;nb4Z=)D7H<-`#%$^# zi`>amtzJ^^#zB2e%o*wF!gZBqML9>Hq9jqsl-|a}yD&JKsX{Op$7)_=CiZvqj;xN& zqb@L;#4xW$+icPN?@MB|{I!>6U(h!Wxa}14Z0S&y|A5$zbH(DXuE?~WrqNv^;x}vI z0PWfSUuL7Yy``H~*?|%z zT~ZWYq}{X;q*u-}CT;zc_NM|2MKT8)cMy|d>?i^^k)O*}hbEcCrU5Bk{Tjf1>$Q=@ zJ9=R}%vW$~GFV_PuXqE4!6AIuC?Tn~Z=m#Kbj3bUfpb82bxsJ=?2wL>EGp=wsj zAPVwM=CffcycEF; z@kPngVDwPM>T-Bj4##H9VONhbq%=SG;$AjQlV^HOH7!_vZk=}TMt*8qFI}bI=K9g$fgD9$! zO%cK1_+Wbk0Ph}E$BR2}4wO<_b0{qtIA1ll>s*2^!7d2e`Y>$!z54Z4FmZ*vyO}EP z@p&MG_C_?XiKBaP#_XrmRYszF;Hyz#2xqG%yr991pez^qN!~gT_Jc=PPCq^8V(Y9K zz33S+Mzi#$R}ncqe!oJ3>{gacj44kx(SOuC%^9~vT}%7itrC3b;ZPfX;R`D2AlGgN zw$o4-F77!eWU0$?^MhG9zxO@&zDcF;@w2beXEa3SL^htWYY{5k?ywyq7u&)~Nys;@ z8ZNIzUw$#ci&^bZ9mp@A;7y^*XpdWlzy%auO1hU=UfNvfHtiPM@+99# z!uo2`>!*MzphecTjN4x6H)xLeeDVEO#@1oDp`*QsBvmky=JpY@fC0$yIexO%f>c-O zAzUA{ch#N&l;RClb~;`@dqeLPh?e-Mr)T-*?Sr{32|n(}m>4}4c3_H3*U&Yj)grth z{%F0z7YPyjux9hfqa+J|`Y%4gwrZ_TZCQq~0wUR8}9@Jj4lh( z#~%AcbKZ++&f1e^G8LPQ)*Yy?lp5^z4pDTI@b^hlv06?GC%{ZywJcy}3U@zS3|M{M zGPp|cq4Zu~9o_cEZiiNyU*tc73=#Mf>7uzue|6Qo_e!U;oJ)Z$DP~(hOcRy&hR{`J zP7cNIgc)F%E2?p%{%&sxXGDb0yF#zac5fr2x>b)NZz8prv~HBhw^q=R$nZ~@&zdBi z)cEDu+cc1?-;ZLm?^x5Ov#XRhw9{zr;Q#0*wglhWD={Pn$Qm$;z?Vx)_f>igNB!id zmTlMmkp@8kP212#@jq=m%g4ZEl$*a_T;5nHrbt-6D0@eqFP7u+P`;X_Qk68bzwA0h zf{EW5xAV5fD)il-cV&zFmPG|KV4^Z{YJe-g^>uL2l7Ep|NeA2#;k$yerpffdlXY<2 znDODl8(v(24^8Cs3wr(UajK*lY*9yAqcS>92eF=W8<&GtU-}>|S$M5}kyxz~p>-~Pb{(irc?QF~icx8A201&Xin%Hxx@kekd zw>yHjlemC*8(JFz05gs6x7#7EM|xoGtpVVs0szqB0bqwaqAdVG7&rLc6#(=y0YEA! z=jFw}xeKVfmAMI*+}bv7qH=LK2#X5^06wul0s+}M(f|O@&WMyG9frlGyLb z&Eix=47rL84J+tEWcy_XTyc*xw9uOQy`qmHCjAeJ?d=dUhm;P}^F=LH42AEMIh6X8 z*I7Q1jK%gVlL|8w?%##)xSIY`Y+9$SC8!X*_A*S0SWOKNUtza(FZHahoC2|6f=*oD zxJ8-RZk!+YpG+J}Uqnq$y%y>O^@e5M3SSw^29PMwt%8lX^9FT=O@VX$FCLBdlj#<{ zJWWH<#iU!^E7axvK+`u;$*sGq1SmGYc&{g03Md&$r@btQSUIjl&yJXA&=79FdJ+D< z4K^ORdM{M0b2{wRROvjz1@Rb>5dFb@gfkYiIOAKM(NR3*1JpeR_Hk3>WGvU&>}D^HXZ02JUnM z@1s_HhX#rG7;|FkSh2#agJ_2fREo)L`ws+6{?IeWV(>Dy8A(6)IjpSH-n_uO=810y z#4?ez9NnERv6k)N13sXmx)=sv=$$i_QK`hp%I2cyi*J=ihBWZLwpx9Z#|s;+XI!0s zLjYRVt!1KO;mnb7ZL~XoefWU02f{jcY`2wZ4QK+q7gc4iz%d0)5$tPUg~$jVI6vFO zK^wG7t=**T40km@TNUK+WTx<1mL|6Tn6+kB+E$Gpt8SauF9E-CR9Uui_EHn_nmBqS z>o#G}58nHFtICqJPx<_?UZ;z0_(0&UqMnTftMKW@%AxYpa!g0fxGe060^xkRtYguj ze&fPtC!?RgE}FsE0*^2lnE>42K#jp^nJDyzp{JV*jU?{+%KzW37-q|d3i&%eooE6C8Z2t2 z9bBL;^fzVhdLxCQh1+Ms5P)ilz9MYFKdqYN%*u^ch(Fq~QJASr5V_=szAKA4Xm5M} z(Kka%r!noMtz6ZUbjBrJ?Hy&c+mHB{OFQ}=41Irej{0N90`E*~_F1&7Du+zF{Dky) z+KN|-mmIT`Thcij!{3=ibyIn830G zN{kI3d`NgUEJ|2If}J!?@w~FV+v?~tlo8ps3Nl`3^kI)WfZ0|ms6U8HEvD9HIDWkz6`T_QSewYZyzkRh)!g~R>!jaR9;K|#82kfE5^;R!~}H4C?q{1AG?O$5kGp)G$f%VML%aPD?{ zG6)*KodSZRXbl8OD=ETxQLJz)KMI7xjArKUNh3@0f|T|75?Yy=pD7056ja0W)O;Td zCEJ=7q?d|$3rZb+8Cvt6mybV-#1B2}Jai^DOjM2<90tpql|M5tmheg){2NyZR}x3w zL6u}F+C-PIzZ56q0x$;mVJXM1V0;F}y9F29ob51f;;+)t&7l30gloMMHPTuod530FC}j^4#qOJV%5!&e!H9#!N&XQvs5{R zD_FOomd-uk@?_JiWP%&nQ_myBlM6so1Ffa1aaL7B`!ZTXPg_S%TUS*>M^8iJRj1*~ e{{%>Z1YfTk|3C04d;8A^0$7;Zm{b|L#{L(;l>}-4 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index bfa42f0e7b91d006d22352c9ff2f134e504e3c1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4842 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 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 324e72cdd7480cb983fa1bcc7ce686e51ef87fe7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7718 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 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index aee44e138434630332d88b1680f33c4b24c70ab3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10486 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 - - 64dp - diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml deleted file mode 100644 index 3ab3e9c..0000000 --- a/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - #3F51B5 - #303F9F - #FF4081 - diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml deleted file mode 100644 index 47c8224..0000000 --- a/app/src/main/res/values/dimens.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 16dp - 16dp - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml deleted file mode 100644 index 5df5d0a..0000000 --- a/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - AutoVerticalTextview - diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml deleted file mode 100644 index 5885930..0000000 --- a/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/app/src/test/java/com/paradoxie/autoverticaltextview/ExampleUnitTest.java b/app/src/test/java/com/paradoxie/autoverticaltextview/ExampleUnitTest.java deleted file mode 100644 index 7a304a8..0000000 --- a/app/src/test/java/com/paradoxie/autoverticaltextview/ExampleUnitTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.paradoxie.autoverticaltextview; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * To work on unit tests, switch the Test Artifact in the Build Variants view. - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file diff --git a/autoscrolltextview/build.gradle b/autoscrolltextview/build.gradle index 46c0179..ab88c30 100644 --- a/autoscrolltextview/build.gradle +++ b/autoscrolltextview/build.gradle @@ -1,25 +1,13 @@ -apply plugin: 'com.android.library' - -android { - compileSdkVersion 24 - buildToolsVersion "24.0.0" - +apply plugin: 'com.huawei.ohos.library' +ohos { + compileSdkVersion 5 defaultConfig { - minSdkVersion 14 - targetSdkVersion 24 - versionCode 1 - versionName "1.0" - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } + compatibleSdkVersion 4 } + } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) + implementation fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' - compile 'com.android.support:appcompat-v7:24.0.0' } diff --git a/autoscrolltextview/proguard-rules.pro b/autoscrolltextview/proguard-rules.pro deleted file mode 100644 index 5fcd592..0000000 --- a/autoscrolltextview/proguard-rules.pro +++ /dev/null @@ -1,17 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /Users/xiehehe/Library/Android/sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/autoscrolltextview/src/main/AndroidManifest.xml b/autoscrolltextview/src/main/AndroidManifest.xml deleted file mode 100644 index 22882dd..0000000 --- a/autoscrolltextview/src/main/AndroidManifest.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/autoscrolltextview/src/main/java/com/paradoxie/autoscrolltextview/VerticalTextview.java b/autoscrolltextview/src/main/java/com/paradoxie/autoscrolltextview/VerticalTextview.java index 4dac100..4619787 100644 --- a/autoscrolltextview/src/main/java/com/paradoxie/autoscrolltextview/VerticalTextview.java +++ b/autoscrolltextview/src/main/java/com/paradoxie/autoscrolltextview/VerticalTextview.java @@ -1,81 +1,93 @@ -package com.paradoxie.autoscrolltextview;/** - * Created by xiehehe on 16/7/19. - */ - -import android.content.Context; -import android.graphics.Color; -import android.os.Handler; -import android.os.Message; -import android.util.AttributeSet; -import android.view.Gravity; -import android.view.View; -import android.view.animation.AccelerateInterpolator; -import android.view.animation.Animation; -import android.view.animation.TranslateAnimation; -import android.widget.TextSwitcher; -import android.widget.TextView; -import android.widget.ViewSwitcher; +package com.paradoxie.autoscrolltextview; + +import ohos.agp.animation.Animator; +import ohos.agp.animation.AnimatorProperty; +import ohos.agp.colors.RgbColor; +import ohos.agp.components.*; +import ohos.agp.components.element.Element; +import ohos.agp.components.element.ShapeElement; +import ohos.agp.utils.Color; +import ohos.agp.utils.LayoutAlignment; +import ohos.app.Context; +import ohos.eventhandler.EventHandler; +import ohos.eventhandler.EventRunner; +import ohos.eventhandler.InnerEvent; +import ohos.hiviewdfx.HiLog; +import ohos.hiviewdfx.HiLogLabel; import java.util.ArrayList; -/** - * User: xiehehe - * Date: 2016-07-19 - * Time: 22:45 - * FIXME - */ -public class VerticalTextview extends TextSwitcher implements ViewSwitcher.ViewFactory { +public class VerticalTextview extends DependentLayout { + + private static final HiLogLabel LABEL = new HiLogLabel(HiLog.DEBUG, 0x00201, "MY_TAG"); private static final int FLAG_START_AUTO_SCROLL = 0; private static final int FLAG_STOP_AUTO_SCROLL = 1; - private static final int STATE_PAUSE = 2; - private static final int STATE_SCROLL = 3; - - private float mTextSize = 16; - private int mPadding = 5; - private int textColor = Color.BLACK; - - private int mScrollState = STATE_PAUSE; - - /** - * @param textSize textsize - * @param padding padding - * @param textColor textcolor - */ - public void setText(float textSize, int padding, int textColor) { - mTextSize = textSize; - mPadding = padding; - this.textColor = textColor; - } + private int mTextSize = 16; private OnItemClickListener itemClickListener; private Context mContext; - private int currentId = -1; + private int currentId = 0; + private int clickId = 0; private ArrayList textList; - private Handler handler; + private EventHandler handler; + private Text t1,t2,t3; + private long animDuration; + private boolean isFirst = true; + private int layoutHeight = 20; - public VerticalTextview(Context context) { - this(context, null); + public VerticalTextview(Context context, AttrSet attrSet) { + super(context, attrSet); mContext = context; + textList = new ArrayList(); + + makeView(); } - public VerticalTextview(Context context, AttributeSet attrs) { - super(context, attrs); - mContext = context; - textList = new ArrayList(); + public void setText(int textSize, int padding){ + this.setText(textSize,padding,0); + } + + public void setText(int textSize, int padding, int textColor){ + setText(textSize,padding,padding,padding,padding,textColor); + } + + public void setText(int textSize, int left, int top, int right, int bottom, int textColor) { + mTextSize = textSize; + + if(textColor!=0){ + t1.setTextColor(new Color(textColor)); + t2.setTextColor(new Color(textColor)); + t3.setTextColor(new Color(textColor)); + } + + t1.setTextSize(textSize); + t2.setTextSize(textSize); + t3.setTextSize(textSize); + + t1.setPadding(left,top,right,bottom); + t2.setPadding(left,top,right,bottom); + t3.setPadding(left,top,right,bottom); + + setBindStateChangedListener(new BindStateChangedListener() { + @Override + public void onComponentBoundToWindow(Component component) { + t3.setWidth(getWidth()); + t3.setHeight(getHeight()); + } + + @Override + public void onComponentUnboundFromWindow(Component component) { + if(handler!=null){ + handler.removeAllEvent(); + } + } + }); } public void setAnimTime(long animDuration) { - setFactory(this); - Animation in = new TranslateAnimation(0, 0, animDuration, 0); - in.setDuration(animDuration); - in.setInterpolator(new AccelerateInterpolator()); - Animation out = new TranslateAnimation(0, 0, 0, -animDuration); - out.setDuration(animDuration); - out.setInterpolator(new AccelerateInterpolator()); - setInAnimation(in); - setOutAnimation(out); + this.animDuration = animDuration; } /** @@ -84,23 +96,142 @@ public class VerticalTextview extends TextSwitcher implements ViewSwitcher.ViewF * @param time */ public void setTextStillTime(final long time) { - handler = new Handler() { + EventRunner runner = EventRunner.create(true);// create()的参数是 true时,则为托管模式 + // 需要对 EventRunner 的实例进行校验,因为创建 EventRunner 可能失败,如创建线程失败时,创建 EventRunner 失败。 + if (runner == null) { + return; + } + handler = new EventHandler(runner){ + // 重写实现processEvent方法 @Override - public void handleMessage(Message msg) { - switch (msg.what) { + public void processEvent(InnerEvent event) { + super.processEvent(event); + if (event == null) { + return; + } + int eventId = event.eventId; + switch (eventId) { case FLAG_START_AUTO_SCROLL: + // 待执行的操作,由开发者定义 if (textList.size() > 0) { - currentId++; - setText(textList.get(currentId % textList.size())); + + runUI(new Runnable() { + @Override + public void run() { + + clickId++; + if(clickId==textList.size()){ + clickId =0; + } + + t1.setWidth(getWidth()); + t1.setHeight(getHeight()); + t2.setWidth(getWidth()); + t2.setHeight(getHeight()); + + int height2 = t1.getHeight(); + AnimatorProperty out = createAnimatorProperty(); + out.moveFromY(0).moveToY(-height2).setDuration(animDuration); + out.setTarget(t1); + out.start(); + + int height = t2.getHeight(); + AnimatorProperty out2 = createAnimatorProperty(); + out2.moveFromY(height).moveToY(0).setDuration(animDuration); + out2.setTarget(t2); + out2.setStateChangedListener(new Animator.StateChangedListener() { + @Override + public void onStart(Animator animator) { + if(t1.getVisibility() != VISIBLE){ + t1.setVisibility(VISIBLE); + } + if(t2.getVisibility() != VISIBLE){ + t2.setVisibility(VISIBLE); + } + + + handler.postTask(new Runnable() { + @Override + public void run() { + mContext.getUITaskDispatcher().asyncDispatch(new Runnable() { + @Override + public void run() { + t3.setVisibility(INVISIBLE); + } + }); + } + }, 60); + } + + @Override + public void onStop(Animator animator) { + + } + + @Override + public void onCancel(Animator animator) { + + } + + @Override + public void onEnd(Animator animator) { + mContext.getUITaskDispatcher().asyncDispatch(new Runnable() { + @Override + public void run() { + t3.setText(textList.get(currentId)); + t3.setVisibility(VISIBLE); + + t1.setVisibility(INVISIBLE); + t2.setVisibility(INVISIBLE); + + t1.setText(textList.get(currentId)); + + if(currentId==textList.size()-1){ + t2.setText(textList.get(0)); + }else{ + t2.setText(textList.get(currentId+1)); + } + + clickId = currentId; + currentId++; + if(currentId==textList.size()){ + currentId =0; + } + } + }); + + } + + @Override + public void onPause(Animator animator) { + + } + + @Override + public void onResume(Animator animator) { + + } + }); + out2.start(); + } + }); + if(isFirst){ + isFirst = false; + handler.sendEvent(FLAG_START_AUTO_SCROLL, time); + }else{ + handler.sendEvent(FLAG_START_AUTO_SCROLL, animDuration+time); + } + } - handler.sendEmptyMessageDelayed(FLAG_START_AUTO_SCROLL, time); + break; case FLAG_STOP_AUTO_SCROLL: - handler.removeMessages(FLAG_START_AUTO_SCROLL); + handler.removeAllEvent(); break; } } }; + } /** @@ -111,81 +242,114 @@ public class VerticalTextview extends TextSwitcher implements ViewSwitcher.ViewF public void setTextList(ArrayList titles) { textList.clear(); textList.addAll(titles); - currentId = -1; + currentId = 0; + if(textList!= null && textList.size()>0){ + t1.setText(textList.get(currentId)); + t3.setText(textList.get(currentId)); + + if(textList.size()>1) { + t2.setText(textList.get(currentId+1)); + currentId++; + } + } + } /** * start auto scroll */ - public void startAutoScroll() { - mScrollState = STATE_SCROLL; - handler.sendEmptyMessage(FLAG_START_AUTO_SCROLL); + public void startAutoScroll() + { + if(textList!= null && textList.size()>1){ + + if(getHeight()!=0){ + t3.setWidth(getWidth()); + t3.setHeight(getHeight()); + } + + t1.setVisibility(INVISIBLE); + t2.setVisibility(INVISIBLE); + t3.setVisibility(VISIBLE); + handler.sendEvent(FLAG_START_AUTO_SCROLL); + } + } /** * stop auto scroll */ public void stopAutoScroll() { - mScrollState = STATE_PAUSE; - handler.sendEmptyMessage(FLAG_STOP_AUTO_SCROLL); + handler.sendEvent(FLAG_STOP_AUTO_SCROLL); } - @Override - public View makeView() { - TextView t = new TextView(mContext); - t.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); - t.setMaxLines(1); - t.setPadding(mPadding, mPadding, mPadding, mPadding); - t.setTextColor(textColor); - t.setTextSize(mTextSize); - - t.setClickable(true); - t.setOnClickListener(new OnClickListener() { + private void makeView() { + + t1 = new Text(mContext); + DirectionalLayout.LayoutConfig layoutConfig = new DirectionalLayout.LayoutConfig(DirectionalLayout.LayoutConfig.MATCH_CONTENT, + DirectionalLayout.LayoutConfig.MATCH_CONTENT); + layoutConfig.alignment = LayoutAlignment.VERTICAL_CENTER|LayoutAlignment.LEFT; + t1.setLayoutConfig(layoutConfig); + t1.setMaxTextLines(1); + t1.setTruncationMode(Text.TruncationMode.ELLIPSIS_AT_END); + t1.setTextSize(mTextSize); + addComponent(t1); + + t2 = new Text(mContext); + DirectionalLayout.LayoutConfig layoutConfig2 = new DirectionalLayout.LayoutConfig( + DirectionalLayout.LayoutConfig.MATCH_CONTENT, + DirectionalLayout.LayoutConfig.MATCH_CONTENT); + layoutConfig2.alignment = LayoutAlignment.VERTICAL_CENTER|LayoutAlignment.LEFT; + t2.setTruncationMode(Text.TruncationMode.ELLIPSIS_AT_END); + t2.setLayoutConfig(layoutConfig2); + t2.setMaxTextLines(1); + t2.setTextSize(mTextSize); + addComponent(t2); + + t3 = new Text(mContext); + DirectionalLayout.LayoutConfig layoutConfig3 = new DirectionalLayout.LayoutConfig( + DirectionalLayout.LayoutConfig.MATCH_CONTENT, + DirectionalLayout.LayoutConfig.MATCH_CONTENT); + layoutConfig3.alignment = LayoutAlignment.VERTICAL_CENTER|LayoutAlignment.LEFT; + + Element element = getBackgroundElement(); + if(element == null){ + ShapeElement element2 = new ShapeElement(); + element2.setRgbColor(new RgbColor(255, 255, 255)); + t3.setBackground(element2); + }else{ + t3.setBackground(element); + } + t3.setTruncationMode(Text.TruncationMode.ELLIPSIS_AT_END); + t3.setLayoutConfig(layoutConfig3); + t3.setMaxTextLines(1); + t3.setTextSize(mTextSize); + addComponent(t3); + + this.setClickedListener(new ClickedListener() { @Override - public void onClick(View v) { - if (itemClickListener != null && textList.size() > 0 && currentId != -1) { - itemClickListener.onItemClick(currentId % textList.size()); + public void onClick(Component component) { + if (itemClickListener != null && textList.size() > 0) { + itemClickListener.onItemClick(clickId ); } } }); - return t; } - /** - * set onclick listener - * - * @param itemClickListener listener - */ public void setOnItemClickListener(OnItemClickListener itemClickListener) { this.itemClickListener = itemClickListener; } - /** - * item click listener - */ public interface OnItemClickListener { - /** - * callback - * - * @param position position - */ void onItemClick(int position); } - public boolean isScroll(){ - return mScrollState ==STATE_SCROLL; - } - public boolean isPause(){ - return mScrollState == STATE_PAUSE; + private static void runUI(Runnable runnable){ + // 切换到主线程 + EventRunner runner = EventRunner.getMainEventRunner(); + EventHandler eventHandler = new EventHandler(runner); + //切换任务 + eventHandler.postSyncTask(runnable); } - //memory leancks. - @Override - protected void onDetachedFromWindow() { - super.onDetachedFromWindow(); - if(handler!=null){ - handler.removeCallbacksAndMessages(null); - } - } } diff --git a/autoscrolltextview/src/main/res/values/strings.xml b/autoscrolltextview/src/main/res/values/strings.xml deleted file mode 100644 index aef947a..0000000 --- a/autoscrolltextview/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - AutoscrollTextview - diff --git a/autoscrolltextview/src/test/java/com/paradoxie/autoscrolltextview/ExampleUnitTest.java b/autoscrolltextview/src/test/java/com/paradoxie/autoscrolltextview/ExampleUnitTest.java deleted file mode 100644 index 49a81a2..0000000 --- a/autoscrolltextview/src/test/java/com/paradoxie/autoscrolltextview/ExampleUnitTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.paradoxie.autoscrolltextview; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * To work on unit tests, switch the Test Artifact in the Build Variants view. - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 317f714..0f37d1b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,24 +1,37 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. +apply plugin: 'com.huawei.ohos.app' + +ohos { + compileSdkVersion 5 + defaultConfig { + compatibleSdkVersion 5 + } +} buildscript { repositories { + maven { + url 'https://mirrors.huaweicloud.com/repository/maven/' + } + maven { + url 'https://developer.huawei.com/repo/' + } jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.2' - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files + classpath 'com.huawei.ohos:hap:2.4.2.5' + classpath 'com.huawei.ohos:decctest:1.0.0.6' } } allprojects { repositories { + maven { + url 'https://mirrors.huaweicloud.com/repository/maven/' + } + maven { + url 'https://developer.huawei.com/repo/' + } jcenter() - maven { url "https://jitpack.io" } } } - -task clean(type: Delete) { - delete rootProject.buildDir -} diff --git a/gradle.properties b/gradle.properties index 1d3591c..0daf183 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,18 +1,10 @@ # Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: +# IDE (e.g. DevEco Studio) users: # Gradle settings configured through the IDE *will override* # any settings specified in this file. - # For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html - # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx10248m -XX:MaxPermSize=256m -# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true \ No newline at end of file +# If the Chinese output is garbled, please configure the following parameter. +# org.gradle.jvmargs=-Dfile.encoding=GBK diff --git a/gradlew b/gradlew index 9d82f78..2fe81a7 100755 --- a/gradlew +++ b/gradlew @@ -1,4 +1,20 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ############################################################################## ## @@ -6,20 +22,38 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" -warn ( ) { +warn () { echo "$*" } -die ( ) { +die () { echo echo "$*" echo @@ -30,6 +64,7 @@ die ( ) { cygwin=false msys=false darwin=false +nonstop=false case "`uname`" in CYGWIN* ) cygwin=true @@ -40,26 +75,11 @@ case "`uname`" in MINGW* ) msys=true ;; + NONSTOP* ) + nonstop=true + ;; esac -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -85,7 +105,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -105,8 +125,8 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` JAVACMD=`cygpath --unix "$JAVACMD"` @@ -134,27 +154,30 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 8a0b282..62bd9b9 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -8,14 +24,17 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -46,10 +65,9 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windowz variants +@rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -60,11 +78,6 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ :execute @rem Setup the command line diff --git a/settings.gradle b/settings.gradle index c35574c..6170c08 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include ':app', ':autoscrolltextview' +include ':entry', ':autoscrolltextview' -- Gitee From 53a2a091dff0dce2134c3d56e0fb30c078cf61d1 Mon Sep 17 00:00:00 2001 From: litongzhou Date: Mon, 12 Apr 2021 14:35:38 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E7=A7=BB=E6=A4=8D=E8=87=B3ohos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- autoscrolltextview/src/main/config.json | 27 ++++++++ .../main/resources/base/element/string.json | 8 +++ .../base/graphic/background_btn_element.xml | 8 +++ entry/build.gradle | 17 +++++ entry/src/main/config.json | 49 ++++++++++++++ .../autoverticaltextview/MainAbility.java | 13 ++++ .../autoverticaltextview/MyApplication.java | 20 ++++++ .../slice/MainAbilitySlice.java | 64 ++++++++++++++++++ .../autoverticaltextview/slice/ResUtils.java | 61 +++++++++++++++++ .../main/resources/base/element/string.json | 16 +++++ .../base/graphic/background_ability_main.xml | 6 ++ .../base/graphic/background_btn_element.xml | 8 +++ .../resources/base/layout/ability_main.xml | 24 +++++++ .../resources/base/layout/layout_toast.xml | 19 ++++++ entry/src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes gradle/wrapper/gradle-wrapper.jar | Bin 53636 -> 58694 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- 17 files changed, 341 insertions(+), 2 deletions(-) create mode 100644 autoscrolltextview/src/main/config.json create mode 100644 autoscrolltextview/src/main/resources/base/element/string.json create mode 100644 autoscrolltextview/src/main/resources/base/graphic/background_btn_element.xml create mode 100644 entry/build.gradle create mode 100644 entry/src/main/config.json create mode 100644 entry/src/main/java/com/paradoxie/autoverticaltextview/MainAbility.java create mode 100644 entry/src/main/java/com/paradoxie/autoverticaltextview/MyApplication.java create mode 100644 entry/src/main/java/com/paradoxie/autoverticaltextview/slice/MainAbilitySlice.java create mode 100644 entry/src/main/java/com/paradoxie/autoverticaltextview/slice/ResUtils.java create mode 100644 entry/src/main/resources/base/element/string.json create mode 100644 entry/src/main/resources/base/graphic/background_ability_main.xml create mode 100644 entry/src/main/resources/base/graphic/background_btn_element.xml create mode 100644 entry/src/main/resources/base/layout/ability_main.xml create mode 100644 entry/src/main/resources/base/layout/layout_toast.xml create mode 100644 entry/src/main/resources/base/media/icon.png diff --git a/autoscrolltextview/src/main/config.json b/autoscrolltextview/src/main/config.json new file mode 100644 index 0000000..5fac031 --- /dev/null +++ b/autoscrolltextview/src/main/config.json @@ -0,0 +1,27 @@ +{ + "app": { + "bundleName": "com.paradoxie.autoverticaltextview", + "vendor": "paradoxie", + "version": { + "code": 1, + "name": "1.0" + }, + "apiVersion": { + "compatible": 4, + "target": 5, + "releaseType": "Beta1" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.paradoxie.autoscrolltextview", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "autoscrolltextview", + "moduleType": "har" + } + } +} \ No newline at end of file diff --git a/autoscrolltextview/src/main/resources/base/element/string.json b/autoscrolltextview/src/main/resources/base/element/string.json new file mode 100644 index 0000000..fae4337 --- /dev/null +++ b/autoscrolltextview/src/main/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "autoscrolltextview" + } + ] +} diff --git a/autoscrolltextview/src/main/resources/base/graphic/background_btn_element.xml b/autoscrolltextview/src/main/resources/base/graphic/background_btn_element.xml new file mode 100644 index 0000000..5af0ca9 --- /dev/null +++ b/autoscrolltextview/src/main/resources/base/graphic/background_btn_element.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/entry/build.gradle b/entry/build.gradle new file mode 100644 index 0000000..96e4562 --- /dev/null +++ b/entry/build.gradle @@ -0,0 +1,17 @@ +apply plugin: 'com.huawei.ohos.hap' +ohos { + signingConfigs { + + } + compileSdkVersion 5 + defaultConfig { + compatibleSdkVersion 5 + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) + testCompile 'junit:junit:4.12' + + implementation project(':autoscrolltextview') +} diff --git a/entry/src/main/config.json b/entry/src/main/config.json new file mode 100644 index 0000000..f16022f --- /dev/null +++ b/entry/src/main/config.json @@ -0,0 +1,49 @@ +{ + "app": { + "bundleName": "com.paradoxie.autoverticaltextview", + "vendor": "paradoxie", + "version": { + "code": 1, + "name": "1.0" + }, + "apiVersion": { + "compatible": 5, + "target": 5, + "releaseType": "Beta1" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.paradoxie.autoverticaltextview", + "name": ".MyApplication", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry" + }, + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "orientation": "unspecified", + "name": "com.paradoxie.autoverticaltextview.MainAbility", + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "AutoVerticalTextView", + "type": "page", + "launchType": "standard" + } + ] + } +} \ No newline at end of file diff --git a/entry/src/main/java/com/paradoxie/autoverticaltextview/MainAbility.java b/entry/src/main/java/com/paradoxie/autoverticaltextview/MainAbility.java new file mode 100644 index 0000000..8ef8a91 --- /dev/null +++ b/entry/src/main/java/com/paradoxie/autoverticaltextview/MainAbility.java @@ -0,0 +1,13 @@ +package com.paradoxie.autoverticaltextview; + +import com.paradoxie.autoverticaltextview.slice.MainAbilitySlice; +import ohos.aafwk.ability.Ability; +import ohos.aafwk.content.Intent; + +public class MainAbility extends Ability { + @Override + public void onStart(Intent intent) { + super.onStart(intent); + super.setMainRoute(MainAbilitySlice.class.getName()); + } +} diff --git a/entry/src/main/java/com/paradoxie/autoverticaltextview/MyApplication.java b/entry/src/main/java/com/paradoxie/autoverticaltextview/MyApplication.java new file mode 100644 index 0000000..8328e61 --- /dev/null +++ b/entry/src/main/java/com/paradoxie/autoverticaltextview/MyApplication.java @@ -0,0 +1,20 @@ +package com.paradoxie.autoverticaltextview; + +import ohos.aafwk.ability.AbilityPackage; +import ohos.app.Context; + +public class MyApplication extends AbilityPackage { + + private static Context mContext; + + @Override + public void onInitialize() { + super.onInitialize(); + mContext = getApplicationContext(); + } + + public static Context getAppContext(){ + return mContext; + } + +} diff --git a/entry/src/main/java/com/paradoxie/autoverticaltextview/slice/MainAbilitySlice.java b/entry/src/main/java/com/paradoxie/autoverticaltextview/slice/MainAbilitySlice.java new file mode 100644 index 0000000..7587311 --- /dev/null +++ b/entry/src/main/java/com/paradoxie/autoverticaltextview/slice/MainAbilitySlice.java @@ -0,0 +1,64 @@ +package com.paradoxie.autoverticaltextview.slice; + +import com.paradoxie.autoscrolltextview.VerticalTextview; +import com.paradoxie.autoverticaltextview.ResourceTable; +import ohos.aafwk.ability.AbilitySlice; +import ohos.aafwk.ability.OnClickListener; +import ohos.aafwk.content.Intent; +import ohos.agp.components.Component; +import ohos.agp.components.Text; +import ohos.agp.utils.Color; + +import java.util.ArrayList; + +public class MainAbilitySlice extends AbilitySlice { + + private VerticalTextview TextView; + private ArrayList titleList = new ArrayList(); + + + @Override + public void onStart(Intent intent) { + super.onStart(intent); + super.setUIContent(ResourceTable.Layout_ability_main); + + init(); + + } + + public void init() { + TextView = (VerticalTextview)findComponentById(ResourceTable.Id_verticalText); + titleList.add("你是天上最受111"); + titleList.add("我是丑人脸上22的鼻上的鼻上的鼻涕222"); + titleList.add("你发出完美的声音333"); + titleList.add("我被默默揩去44我被默默揩去444"); + titleList.add("你冷酷外表画意555"); + titleList.add("我已经够胖还胖还胖还吃东西666"); +// titleList.add("你踏着七彩祥云离去777"); +// titleList.add("我被留在这里888"); + TextView.setTextList(titleList); + TextView.setText(56, 10,Color.BLUE.getValue());//设置属性 + TextView.setTextStillTime(1500);//设置停留时长间隔 + TextView.setAnimTime(1000);//设置进入和退出的时间间隔 + TextView.setOnItemClickListener(new VerticalTextview.OnItemClickListener() { + @Override + public void onItemClick(int position) { + ResUtils.showToast("点击了 : " + titleList.get(position)); + } + }); + + + } + + @Override + public void onActive() { + super.onActive(); + TextView.startAutoScroll(); + } + + @Override + public void onForeground(Intent intent) { + super.onForeground(intent); + TextView.stopAutoScroll(); + } +} diff --git a/entry/src/main/java/com/paradoxie/autoverticaltextview/slice/ResUtils.java b/entry/src/main/java/com/paradoxie/autoverticaltextview/slice/ResUtils.java new file mode 100644 index 0000000..34740ad --- /dev/null +++ b/entry/src/main/java/com/paradoxie/autoverticaltextview/slice/ResUtils.java @@ -0,0 +1,61 @@ +package com.paradoxie.autoverticaltextview.slice; + +import com.paradoxie.autoverticaltextview.MyApplication; +import com.paradoxie.autoverticaltextview.ResourceTable; +import ohos.agp.components.DirectionalLayout; +import ohos.agp.components.LayoutScatter; +import ohos.agp.components.Text; +import ohos.agp.utils.LayoutAlignment; +import ohos.agp.window.dialog.ToastDialog; +import ohos.app.Context; +import ohos.hiviewdfx.HiLog; +import ohos.hiviewdfx.HiLogLabel; + +public class ResUtils { + + private static final HiLogLabel LABEL = new HiLogLabel(HiLog.DEBUG, 0x00201, "TAG"); + + + /** + * ResourceTable.String_ + */ + public static String getString(int resid){ + String str = "id异常"; + + try { + str = MyApplication.getAppContext().getResourceManager().getElement(resid).getString(); + } catch (Exception e) { + return str; + } + return str; + } + + public static void LogE(String format, Object... args){ + HiLog.error(LABEL,format,args); + } + + public static void LogLine(){ + LogLine(""); + } + + public static void LogLine(String log){ + HiLog.error(LABEL,"======================="+log+"============================"); + } + + public static void LogEResId(Context mContext,int resId, Object... args){ + HiLog.error(LABEL,getString(resId),args); + } + + + public static void showToast(String msg){ + DirectionalLayout layout = (DirectionalLayout) LayoutScatter.getInstance(MyApplication.getAppContext()) + .parse(ResourceTable.Layout_layout_toast, null, false); + Text text = (Text) layout.findComponentById(ResourceTable.Id_msg_toast); + text.setText(msg); + new ToastDialog(MyApplication.getAppContext()) + .setComponent(layout) + .setSize(DirectionalLayout.LayoutConfig.MATCH_CONTENT, DirectionalLayout.LayoutConfig.MATCH_CONTENT) + .setAlignment(LayoutAlignment.CENTER) + .show(); + } +} diff --git a/entry/src/main/resources/base/element/string.json b/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..941bed7 --- /dev/null +++ b/entry/src/main/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "app_name", + "value": "AutoVerticalTextView" + }, + { + "name": "mainability_description", + "value": "Java_Phone_Empty Feature Ability" + }, + { + "name": "HelloWorld", + "value": "Hello World" + } + ] +} \ No newline at end of file diff --git a/entry/src/main/resources/base/graphic/background_ability_main.xml b/entry/src/main/resources/base/graphic/background_ability_main.xml new file mode 100644 index 0000000..c0c0a3d --- /dev/null +++ b/entry/src/main/resources/base/graphic/background_ability_main.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/entry/src/main/resources/base/graphic/background_btn_element.xml b/entry/src/main/resources/base/graphic/background_btn_element.xml new file mode 100644 index 0000000..ad2ce6f --- /dev/null +++ b/entry/src/main/resources/base/graphic/background_btn_element.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/entry/src/main/resources/base/layout/ability_main.xml b/entry/src/main/resources/base/layout/ability_main.xml new file mode 100644 index 0000000..d248f03 --- /dev/null +++ b/entry/src/main/resources/base/layout/ability_main.xml @@ -0,0 +1,24 @@ + + + + + + + \ No newline at end of file diff --git a/entry/src/main/resources/base/layout/layout_toast.xml b/entry/src/main/resources/base/layout/layout_toast.xml new file mode 100644 index 0000000..a454273 --- /dev/null +++ b/entry/src/main/resources/base/layout/layout_toast.xml @@ -0,0 +1,19 @@ + + + + \ No newline at end of file diff --git a/entry/src/main/resources/base/media/icon.png b/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 delta 48558 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�kSa#TH1 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 G_5T3orVFkB diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 122a0dc..f59159e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Mon Dec 28 10:00:20 PST 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://repo.huaweicloud.com/gradle/gradle-6.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip -- Gitee From 9ad698edeb482af2f5fcdc05b9eea8c81533dd88 Mon Sep 17 00:00:00 2001 From: litongzhou Date: Mon, 12 Apr 2021 15:09:03 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E6=88=AA=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- printscreen/verticaltextview.png | Bin 0 -> 45841 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 printscreen/verticaltextview.png diff --git a/printscreen/verticaltextview.png b/printscreen/verticaltextview.png new file mode 100644 index 0000000000000000000000000000000000000000..d2218d867d4ef9f8a8e06ce5dc1706ff8ec5a06e GIT binary patch literal 45841 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 P1o(GNRa+%r34!`Ie!(AI literal 0 HcmV?d00001 -- Gitee From a2360d95e792a5f31ac3859c70ba5e63329c1ca5 Mon Sep 17 00:00:00 2001 From: litz52001 Date: Mon, 12 Apr 2021 15:13:17 +0800 Subject: [PATCH 04/11] update README.md. --- README.md | 269 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 208 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index beadfb1..6ef3245 100644 --- a/README.md +++ b/README.md @@ -1,62 +1,209 @@ # AutoVerticalTextview -垂直滚动的textview,继承自TextSwitcher,抽出一个依赖库供以后备用 - - -### 配置方法 - -项目*build.gradle*文件内: -```` - allprojects { - repositories { - ... - maven { url "https://jitpack.io" } - } - } - -```` -module内*build.gradle*添加依赖: - ```` - dependencies { - compile 'com.github.paradoxie:AutoVerticalTextview:0.1' - } - -```` -### 使用方法 - -xml文件里: -```` - -```` - -activity里: -```` - TextView.setTextList(titleList);//加入显示内容,集合类型 - TextView.setText(26, 5, Color.RED);//设置属性,具体跟踪源码 - TextView.setTextStillTime(3000);//设置停留时长间隔 - TextView.setAnimTime(300);//设置进入和退出的时间间隔 - //对单条文字的点击监听 - TextView.setOnItemClickListener(new VerticalTextview.OnItemClickListener() { - @Override - public void onItemClick(int position) { - // TO DO - } - }); - -```` - //开始滚动 - @Override - protected void onResume() { - super.onResume(); - TextView.startAutoScroll(); - } - //停止滚动 - @Override - protected void onPause() { - super.onPause(); - TextView.stopAutoScroll(); - } -```` \ No newline at end of file + +**本项目基于开源项目Lighter 进行openharmony的移植和开发,可以通过项目标签以及github地址( https://github.com/samlss/Lighter )追踪到原安卓项目版本** + +#### 项目介绍 +- 项目名称:AutoVerticalTextview +- 所属系列:openharmony的第三方组件适配移植 +- 功能:垂直滚动的textview,继承自TextSwitcher,抽出一个依赖库供以后备用 +- 项目移植状态:主功能完成 +- 调用差异:无 +- 开发版本:sdk5,DevEco Studio2.1 beta3 +- 项目作者和维护人:李同洲 +- 联系方式:zhuzhonglin050@chinasoftinc.com +- 原项目Doc地址:https://github.com/paradoxie/AutoVerticalTextview + +#### 效果演示 + +![效果演示](https://gitee.com/litz/AutoVerticalTextview_ohos/blob/master/printscreen/verticaltextview.png) + +#### 安装教程 + +1.下载library的har包lighter-release.har(位于:)。 + +2.启动 DevEco Studio,将下载的har包,导入工程目录“entry->libs”下。 + +3.在module级别下的build.gradle文件中添加依赖,在dependencies标签中增加对libs目录下jar包的引用。 + + ``` + dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) + ...... + } + ``` + +在sdk5,DevEco Studio2.1 beta3下项目可直接运行 +如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, +并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下 + +#### 使用说明 + +你可以指定highlight view所依附的父view, + +通过使用以下代码来指定: + +```java +Lighter with(ComponentContainer rootView) //使用 'rootView' 作为父view +``` + +完整调用: + +```java + +Lighter lighter = Lighter.with(viewpager_root) + .setBackgroundColor(0x000000, 0.5f) + .setIntercept(true) + .addHighlight(new LighterParameter.Builder() + .setHighlightedViewId(ResourceTable.Id_vp_btn_1) + .setLighterShape(new OvalShape()) + .setTipView(mTipViewList.get(0)) + .setTipViewDisplayAnimation(LighterHelper.getScaleAnimation()) + .setTipViewRelativeDirection(Direction.RIGHT) + .setTipViewRelativeOffset(new MarginOffset(30, 0, 80, 0)) + .build()) + .addHighlight(new LighterParameter.Builder() + .setHighlightedViewId(ResourceTable.Id_vp_btn_2) + .setLighterShape(new OvalShape()) + .setTipView(mTipViewList.get(1)) + .setTipViewRelativeDirection(Direction.LEFT) + .setTipViewDisplayAnimation(LighterHelper.getScaleAnimation()) + .setTipViewRelativeOffset(new MarginOffset(50, 0, 100, 0)) + .build()) + .addHighlight(new LighterParameter.Builder() + .setHighlightedViewId(ResourceTable.Id_vp_btn_3) + .setLighterShape(new OvalShape()) + .setTipView(mTipViewList.get(2)) + .setTipViewRelativeDirection(Direction.TOP) + .setTipViewDisplayAnimation(LighterHelper.getScaleAnimation()) + .setTipViewRelativeOffset(new MarginOffset(-400, 0, 0, 30)) + .build()); + lighter.show(); +``` + + + +当你需要一次显示多个高亮的时候, 可调用**addHighlight(LighterParameter...lighterParameters)** + +```java +Lighter.with(activity) + .addHighlight( + //一次显示两个高亮 + new LighterParameter.Builder() + .setHighlightedViewId(R.id.vp_btn_1) + .setTipLayoutId(R.layout.layout_tip_1) + .setLighterShape(new RectShape(5, 5, 30)) + .setTipViewRelativeDirection(Direction.BOTTOM) + .setTipViewRelativeOffset(new MarginOffset(150, 0, 30, 0)) + .build(), + + new LighterParameter.Builder() + .setHighlightedViewId(R.id.vp_btn_2) + .setTipLayoutId(R.layout.layout_tip_2) + .setLighterShape(new RectShape(5, 5, 30)) + .setTipViewRelativeDirection(Direction.TOP) + .setTipViewRelativeOffset(new MarginOffset(-400, 0, 0, 30)) + .build()) + .show(); +``` + +##### 关于 [LighterParameter.Builder](https://gitee.com/chinasoft_ohos/Lighter_ohos/blob/master/lighter/src/main/java/me/samlss/lighter/parameter/LighterParameter.java) + + +| Method | Description | +| :-------------------------- | :------------------------------- | +| setHighlightedViewId | 设置需要高亮的view id | +| setAutoVerticalFixed | 设置垂直方向是否需要自动修改展示位置 | +| setHighlightedView | 设置需要高亮的view | +| setTipLayoutId | 设置提示view的layout id | +| setTipView | 设置提示view | +| setLighterShape | 设置围着高亮view的形状 | +| setShapeXOffset | 设置形状的x偏移量 | +| setShapeYOffset | 设置形状的y偏移量 | +| setTipViewRelativeDirection | 设置提示view相对高亮view的方向 | +| setTipViewRelativeOffset | 设置提示view相对高亮view的便宜量 | +| setTipViewDisplayAnimation | 设置提示view的显示动画 | +| build | 创建LighterParameter对象 | + +###### 注意: + +- setHighlightedViewId & setHighlightedView +- setTipLayoutId & setTipView + +上面两组方法中,只需使用其中一个方法,若都不使用的话,则会抛出异常 + +##### 关于 [Shape](https://gitee.com/chinasoft_ohos/Lighter_ohos/tree/master/lighter/src/main/java/me/samlss/lighter/shape) + +| Shape | Description | +| ------ | ---------------------------- | +| Rect | 可设置圆角和模糊度的矩形图形 | +| Circle | 可设置模糊度的圆形 | +| Oval | 可设置模糊度的椭圆形 | + + +###### ShapeXOffset & ShapeYOffset + +参考下面图片 : + +![Lighter](https://gitee.com/chinasoft_ohos/Lighter_ohos/blob/master/screenshots/screenshot6.png) + + + +##### 关于提示view的参数 + +###### 方向 + +参考下面图片: + +![Lighter](https://gitee.com/chinasoft_ohos/Lighter_ohos/blob/master/screenshots/screenshot7.png) + +###### 偏移量 + +当指定方向后(默认为左边), 偏移量计算基于方向 + +例如: + +Left: topMargin 和 rightMargin生效 + +Right: topMargin 和 leftmargin生效 + +Top: 当高亮view处于屏幕的左边的时候, teftMargin & bottomMargin生效. 否则, rightMargin & bottomMargin生效 + +Bottom: 当高亮view处于屏幕的左边的时候, leftMargin 和 topMargin生效. 否则, rightMargin & topMargin生效 + +###### Animation + +可使用任何动画 + +#### 测试信息 + +CodeCheck代码测试无异常 + +CloudTest代码测试无异常 + +火绒安全病毒安全检测通过 + +当前版本demo功能与安卓原组件基本无差异 + +测试员:黄可 + +#### 版本迭代 + +- v0.0.1_alpha + +### License + +``` +Copyright 2018 samlss + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` -- Gitee From 37686bbf129671e17581afe20d52f8a067e4776e Mon Sep 17 00:00:00 2001 From: litz52001 Date: Mon, 12 Apr 2021 15:14:05 +0800 Subject: [PATCH 05/11] update README.md. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ef3245..3784bc5 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ #### 效果演示 -![效果演示](https://gitee.com/litz/AutoVerticalTextview_ohos/blob/master/printscreen/verticaltextview.png) +![效果演示]https://gitee.com/litz/AutoVerticalTextview_ohos/blob/master/printscreen/verticaltextview.png #### 安装教程 -- Gitee From 1784ab9b230f53863b8a173fc802e63ecdce5172 Mon Sep 17 00:00:00 2001 From: litz52001 Date: Mon, 12 Apr 2021 15:19:05 +0800 Subject: [PATCH 06/11] update README.md. --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3784bc5..67dc4ac 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,11 @@ #### 效果演示 -![效果演示]https://gitee.com/litz/AutoVerticalTextview_ohos/blob/master/printscreen/verticaltextview.png +![效果演示] +![输入图片说明](https://gitee.com/litz/AutoVerticalTextview_ohos/blob/master/printscreen/verticaltextview.png) + + + #### 安装教程 -- Gitee From d71c21228972133173636316f9ca29ff5e711a69 Mon Sep 17 00:00:00 2001 From: litz52001 Date: Mon, 12 Apr 2021 15:49:22 +0800 Subject: [PATCH 07/11] update README.md. --- README.md | 163 +++++++++++++----------------------------------------- 1 file changed, 38 insertions(+), 125 deletions(-) diff --git a/README.md b/README.md index 67dc4ac..ce12442 100644 --- a/README.md +++ b/README.md @@ -15,15 +15,12 @@ #### 效果演示 -![效果演示] -![输入图片说明](https://gitee.com/litz/AutoVerticalTextview_ohos/blob/master/printscreen/verticaltextview.png) - - +![效果演示](./printscreen/verticaltextview.png "截图") #### 安装教程 -1.下载library的har包lighter-release.har(位于:)。 +1.下载library的har包lighter-release.har(位于:)。 2.启动 DevEco Studio,将下载的har包,导入工程目录“entry->libs”下。 @@ -42,141 +39,57 @@ #### 使用说明 -你可以指定highlight view所依附的父view, - -通过使用以下代码来指定: - +将自定义view添加到XML中,使用方法如下: ```java -Lighter with(ComponentContainer rootView) //使用 'rootView' 作为父view + ``` 完整调用: ```java - -Lighter lighter = Lighter.with(viewpager_root) - .setBackgroundColor(0x000000, 0.5f) - .setIntercept(true) - .addHighlight(new LighterParameter.Builder() - .setHighlightedViewId(ResourceTable.Id_vp_btn_1) - .setLighterShape(new OvalShape()) - .setTipView(mTipViewList.get(0)) - .setTipViewDisplayAnimation(LighterHelper.getScaleAnimation()) - .setTipViewRelativeDirection(Direction.RIGHT) - .setTipViewRelativeOffset(new MarginOffset(30, 0, 80, 0)) - .build()) - .addHighlight(new LighterParameter.Builder() - .setHighlightedViewId(ResourceTable.Id_vp_btn_2) - .setLighterShape(new OvalShape()) - .setTipView(mTipViewList.get(1)) - .setTipViewRelativeDirection(Direction.LEFT) - .setTipViewDisplayAnimation(LighterHelper.getScaleAnimation()) - .setTipViewRelativeOffset(new MarginOffset(50, 0, 100, 0)) - .build()) - .addHighlight(new LighterParameter.Builder() - .setHighlightedViewId(ResourceTable.Id_vp_btn_3) - .setLighterShape(new OvalShape()) - .setTipView(mTipViewList.get(2)) - .setTipViewRelativeDirection(Direction.TOP) - .setTipViewDisplayAnimation(LighterHelper.getScaleAnimation()) - .setTipViewRelativeOffset(new MarginOffset(-400, 0, 0, 30)) - .build()); - lighter.show(); + ArrayList titleList = new ArrayList(); + titleList.add("你是天上最受111"); + titleList.add("我是丑人脸上22的鼻上的鼻上的鼻涕222"); + titleList.add("你发出完美的声音333"); + titleList.add("我被默默揩去44我被默默揩去444"); + titleList.add("你冷酷外表画意555"); + titleList.add("我已经够胖还胖还胖还吃东西666"); + + VerticalTextview TextView = (VerticalTextview)findComponentById(ResourceTable.Id_verticalText); + TextView.setTextList(titleList); + TextView.setText(56, 10,Color.BLUE.getValue());//设置属性 + TextView.setTextStillTime(1500);//设置停留时长间隔 + TextView.setAnimTime(1000);//设置进入和退出的时间间隔 + TextView.setOnItemClickListener(new VerticalTextview.OnItemClickListener() { + @Override + public void onItemClick(int position) { + ResUtils.showToast("点击了 : " + titleList.get(position)); + } + }); ``` -当你需要一次显示多个高亮的时候, 可调用**addHighlight(LighterParameter...lighterParameters)** - -```java -Lighter.with(activity) - .addHighlight( - //一次显示两个高亮 - new LighterParameter.Builder() - .setHighlightedViewId(R.id.vp_btn_1) - .setTipLayoutId(R.layout.layout_tip_1) - .setLighterShape(new RectShape(5, 5, 30)) - .setTipViewRelativeDirection(Direction.BOTTOM) - .setTipViewRelativeOffset(new MarginOffset(150, 0, 30, 0)) - .build(), - - new LighterParameter.Builder() - .setHighlightedViewId(R.id.vp_btn_2) - .setTipLayoutId(R.layout.layout_tip_2) - .setLighterShape(new RectShape(5, 5, 30)) - .setTipViewRelativeDirection(Direction.TOP) - .setTipViewRelativeOffset(new MarginOffset(-400, 0, 0, 30)) - .build()) - .show(); -``` -##### 关于 [LighterParameter.Builder](https://gitee.com/chinasoft_ohos/Lighter_ohos/blob/master/lighter/src/main/java/me/samlss/lighter/parameter/LighterParameter.java) +##### 关于 [VerticalTextview](https://gitee.com/chinasoft_ohos/AutoVerticalTextview/blob/master/autoscrolltextview/src/main/java/com/paradoxie/autoscrolltextview/VerticalTextview.java) | Method | Description | | :-------------------------- | :------------------------------- | -| setHighlightedViewId | 设置需要高亮的view id | -| setAutoVerticalFixed | 设置垂直方向是否需要自动修改展示位置 | -| setHighlightedView | 设置需要高亮的view | -| setTipLayoutId | 设置提示view的layout id | -| setTipView | 设置提示view | -| setLighterShape | 设置围着高亮view的形状 | -| setShapeXOffset | 设置形状的x偏移量 | -| setShapeYOffset | 设置形状的y偏移量 | -| setTipViewRelativeDirection | 设置提示view相对高亮view的方向 | -| setTipViewRelativeOffset | 设置提示view相对高亮view的便宜量 | -| setTipViewDisplayAnimation | 设置提示view的显示动画 | -| build | 创建LighterParameter对象 | - -###### 注意: - -- setHighlightedViewId & setHighlightedView -- setTipLayoutId & setTipView - -上面两组方法中,只需使用其中一个方法,若都不使用的话,则会抛出异常 - -##### 关于 [Shape](https://gitee.com/chinasoft_ohos/Lighter_ohos/tree/master/lighter/src/main/java/me/samlss/lighter/shape) - -| Shape | Description | -| ------ | ---------------------------- | -| Rect | 可设置圆角和模糊度的矩形图形 | -| Circle | 可设置模糊度的圆形 | -| Oval | 可设置模糊度的椭圆形 | - - -###### ShapeXOffset & ShapeYOffset - -参考下面图片 : - -![Lighter](https://gitee.com/chinasoft_ohos/Lighter_ohos/blob/master/screenshots/screenshot6.png) - - - -##### 关于提示view的参数 - -###### 方向 - -参考下面图片: - -![Lighter](https://gitee.com/chinasoft_ohos/Lighter_ohos/blob/master/screenshots/screenshot7.png) - -###### 偏移量 - -当指定方向后(默认为左边), 偏移量计算基于方向 - -例如: - -Left: topMargin 和 rightMargin生效 - -Right: topMargin 和 leftmargin生效 - -Top: 当高亮view处于屏幕的左边的时候, teftMargin & bottomMargin生效. 否则, rightMargin & bottomMargin生效 - -Bottom: 当高亮view处于屏幕的左边的时候, leftMargin 和 topMargin生效. 否则, rightMargin & topMargin生效 - -###### Animation +| setTextList | 设置显示文字 | +| setText | 设置显示文字大小、内边距、文字颜色 | +| setAnimTime | 设置进入和退出的时间间隔 | +| setOnItemClickListener | 设置点击事件 | +| startAutoScroll | 设置开始滚动 | +| stopAutoScroll | 设置停止滚动 | + + -可使用任何动画 #### 测试信息 @@ -188,7 +101,7 @@ CloudTest代码测试无异常 当前版本demo功能与安卓原组件基本无差异 -测试员:黄可 +测试员:徐栋 #### 版本迭代 -- Gitee From 26a07f3a0cc5e3f3c0433011f116576ddd7dd6f4 Mon Sep 17 00:00:00 2001 From: litz52001 Date: Mon, 12 Apr 2021 16:04:31 +0800 Subject: [PATCH 08/11] update README.md. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ce12442..369f2b6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # AutoVerticalTextview -**本项目基于开源项目Lighter 进行openharmony的移植和开发,可以通过项目标签以及github地址( https://github.com/samlss/Lighter )追踪到原安卓项目版本** +**本项目基于开源项目AutoVerticalTextview 进行openharmony的移植和开发,可以通过项目标签以及github地址( https://github.com/paradoxie/AutoVerticalTextview )追踪到原安卓项目版本** #### 项目介绍 - 项目名称:AutoVerticalTextview @@ -10,7 +10,7 @@ - 调用差异:无 - 开发版本:sdk5,DevEco Studio2.1 beta3 - 项目作者和维护人:李同洲 -- 联系方式:zhuzhonglin050@chinasoftinc.com +- 联系方式:litongzhou050@chinasoftinc.com - 原项目Doc地址:https://github.com/paradoxie/AutoVerticalTextview #### 效果演示 @@ -20,7 +20,7 @@ #### 安装教程 -1.下载library的har包lighter-release.har(位于:)。 +1.下载library的har包autoscrolltextview-release.har(位于:)。 2.启动 DevEco Studio,将下载的har包,导入工程目录“entry->libs”下。 -- Gitee From aa0006adc2d545f6b4d734d2d100ec96a341d201 Mon Sep 17 00:00:00 2001 From: litz52001 Date: Mon, 12 Apr 2021 16:07:43 +0800 Subject: [PATCH 09/11] update README.md. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 369f2b6..414be83 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ #### 项目介绍 - 项目名称:AutoVerticalTextview - 所属系列:openharmony的第三方组件适配移植 -- 功能:垂直滚动的textview,继承自TextSwitcher,抽出一个依赖库供以后备用 +- 功能:垂直滚动的textview - 项目移植状态:主功能完成 - 调用差异:无 - 开发版本:sdk5,DevEco Studio2.1 beta3 -- Gitee From f3de735bed12d63c3e562cf46643ee456a849d5e Mon Sep 17 00:00:00 2001 From: litz52001 Date: Mon, 12 Apr 2021 16:21:17 +0800 Subject: [PATCH 10/11] update README.md. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 414be83..6046910 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ #### 安装教程 -1.下载library的har包autoscrolltextview-release.har(位于:)。 +1.下载library的har包autoscrolltextview-release.har(位于:)。 2.启动 DevEco Studio,将下载的har包,导入工程目录“entry->libs”下。 -- Gitee From 475d81d1ee572f3f8d5ba0cc8369a1128faf8aaa Mon Sep 17 00:00:00 2001 From: litz52001 Date: Mon, 12 Apr 2021 16:30:11 +0800 Subject: [PATCH 11/11] update README.md. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6046910..bf8eb2a 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ - 项目作者和维护人:李同洲 - 联系方式:litongzhou050@chinasoftinc.com - 原项目Doc地址:https://github.com/paradoxie/AutoVerticalTextview +- 基线版本:AutoVerticalTextview组件 tag 0.1 #### 效果演示 -- Gitee