1. 程式人生 > 其它 >android dialog show() 沒彈出_2020年GitHub 上那些優秀Android開源庫,這裡是Top10!

android dialog show() 沒彈出_2020年GitHub 上那些優秀Android開源庫,這裡是Top10!

技術標籤:android dialog show() 沒彈出

前言

每過一段時間呀,我都會給大家帶來一些從Github上收集的一些開源庫,有的是炫酷動效,有的則是實用的工具和類庫。2020年有哪些優秀的開源庫呢?本期就為大家帶精選的10個,排名不分先後。

No1. LiquidSwipe

這是一個很棒的ViewPager庫,它在瀏覽ViewPager的不同頁面時,顯示波浪的滑動動畫,效果非常炫酷。該庫的USP是觸控互動的。這意味著在檢視中顯示類似液體的顯示過渡時,應考慮觸控事件。

1.1如何使用呢?

匯入以下Gradle依賴項:

implementation'com.github.Chrisvin:LiquidSwipe:1.3'

然後將LiquidSwipeLayout新增為儲存fragment佈局的容器的根佈局:

1.2 效果圖

效果1效果2

f334ecfe-3a30-eb11-8da9-e4434bdf6706.png f634ecfe-3a30-eb11-8da9-e4434bdf6706.png

更多詳細使用方法請看Github: https://github.com/Chrisvin/LiquidSwipe

我的學習Android進階之路

接下來,為大家介紹下我學習Android時用到的一些資料與視訊,需要的夥伴可以

私信我【進階】,我分享給你,也是感謝大家這麼久以來對我的支援。

f834ecfe-3a30-eb11-8da9-e4434bdf6706.png

B站Android進階視訊

f934ecfe-3a30-eb11-8da9-e4434bdf6706.png

去B站搜尋,B站賬號:bili_84936792704 即可觀看哦!

OK,廢話不多說接下來繼續看文章吧。

No2. Flourish

Flourish提供了一個炫酷的方式來顯示或者隱藏一個佈局,實現方式也很簡單,就是對View或者佈局進行了包裝,通過構建者模式來提供api給上層呼叫。就像使用dialog一樣,呼叫show和dissmiss方法來顯示和隱藏。此外,通過這些類,我們還可以自定義動畫(正常,加速,反彈),或為佈局方向設定我們自己的起點(左上,右下等)。

2.1 如何使用?

在build.gradle 中新增如下依賴:

dependencies{implementation"com.github.skydoves:flourish:1.0.0"}

然後在程式碼中,構建佈局:

Flourishflourish=newFlourish.Builder(parentLayout)//setstheflourishlayoutforshowinganddismissingontheparentlayout..setFlourishLayout(R.layout.layout_flourish_main)//setstheflourishinganimationforshowinganddismissing..setFlourishAnimation(FlourishAnimation.BOUNCE)//setstheorientationofthestartingpoint..setFlourishOrientation(FlourishOrientation.TOP_LEFT)//setsaflourishListenerforlisteningchanges..setFlourishListener(flourishListener)//setstheflourishlayoutshouldbeshowedonstart..setIsShowedOnStart(false)//setsthedurationoftheflourishing..setDuration(800L).build();

還提供有更簡潔的DSL:

valmyFlourish=createFlourish(parentLayout){setFlourishLayout(R.layout.layout_flourish_main)setFlourishAnimation(FlourishAnimation.ACCELERATE)setFlourishOrientation(FlourishOrientation.TOP_RIGHT)setIsShowedOnStart(true)setFlourishListener{}}

2.2 效果圖

效果1效果2

fa34ecfe-3a30-eb11-8da9-e4434bdf6706.png fc34ecfe-3a30-eb11-8da9-e4434bdf6706.png

更多詳細使用請看Github:https://github.com/skydoves/Flourish

No3. AestheticDialogs

這是一個美觀而時尚的AlterDialog庫,目前可支援六種不同的對話方塊,如:

  • Flash Dialog
  • Connectify Dialog
  • Toaster Dialog
  • Emotion Dialog
  • Drake Dialog
  • Emoji Dialog並且啊,還提供了暗黑模式的適配。

3.1 如何使用?

在build.gradle 中新增如下依賴:

dependencies{...implementation'com.github.gabriel-TheCode:AestheticDialogs:1.1.0'}

程式碼中,顯示不同種類的對話方塊則呼叫對應的方法就好

Flash:

AestheticDialog.showFlashDialog(this,"YourdialogTitle","Yourmessage",AestheticDialog.SUCCESS);AestheticDialog.showFlashDialog(this,"YourdialogTitle","Yourmessage",AestheticDialog.ERROR);

Connectify:

AestheticDialog.showConnectify(this,"Yourmessage",AestheticDialog.SUCCESS);AestheticDialog.showConnectify(this,"Yourmessage",AestheticDialog.ERROR);///DarkThemeAestheticDialog.showConnectifyDark(this,"Yourmessage",AestheticDialog.SUCCESS);AestheticDialog.showConnectifyDark(this,"Yourmessage",AestheticDialog.ERROR);

Toaster:

AestheticDialog.showToaster(this,"YourdialogTitle","Yourmessage",AestheticDialog.ERROR);AestheticDialog.showToaster(this,"YourdialogTitle","Yourmessage",AestheticDialog.SUCCESS);AestheticDialog.showToaster(this,"YourdialogTitle","Yourmessage",AestheticDialog.WARNING);AestheticDialog.showToaster(this,"YourdialogTitle","Yourmessage",AestheticDialog.INFO);///DarkThemeAestheticDialog.showToasterDark(this,"YourdialogTitle","Yourmessage",AestheticDialog.ERROR);AestheticDialog.showToasterDark(this,"YourdialogTitle","Yourmessage",AestheticDialog.SUCCESS);AestheticDialog.showToasterDark(this,"YourdialogTitle","Yourmessage",AestheticDialog.WARNING);AestheticDialog.showToasterDark(this,"YourdialogTitle","Yourmessage",AestheticDialog.INFO);

Drake :

AestheticDialog.showDrake(this,AestheticDialog.SUCCESS);AestheticDialog.showDrake(this,AestheticDialog.ERROR);

Emoji :

AestheticDialog.showEmoji(this,"YourdialogTitle","Yourmessage",AestheticDialog.SUCCESS);AestheticDialog.showEmoji(this,"YourdialogTitle","Yourmessage",AestheticDialog.ERROR);///DarkThemeAestheticDialog.showEmojiDark(this,"YourdialogTitle","Yourmessage",AestheticDialog.SUCCESS);AestheticDialog.showEmojiDark(this,"YourdialogTitle","Yourmessage",AestheticDialog.ERROR);

Emotion :

AestheticDialog.showEmotion(this,"YourdialogTitle","Yourmessage",AestheticDialog.SUCCESS);AestheticDialog.showEmotion(this,"YourdialogTitle","Yourmessage",AestheticDialog.ERROR);

Rainbow :

AestheticDialog.showRainbow(this,"YourdialogTitle","Yourmessage",AestheticDialog.SUCCESS);AestheticDialog.showRainbow(this,"YourdialogTitle","Yourmessage",AestheticDialog.ERROR);AestheticDialog.showRainbow(this,"YourdialogTitle","Yourmessage",AestheticDialog.WARNING);AestheticDialog.showRainbow(this,"YourdialogTitle","Yourmessage",AestheticDialog.INFO);

3.2 效果如下

Flash DialogConnectify DialogToaster Dialog

fe34ecfe-3a30-eb11-8da9-e4434bdf6706.png ff34ecfe-3a30-eb11-8da9-e4434bdf6706.png 0235ecfe-3a30-eb11-8da9-e4434bdf6706.png

Emotion DialogDrake DialogEmoji Dialog

0435ecfe-3a30-eb11-8da9-e4434bdf6706.png 0635ecfe-3a30-eb11-8da9-e4434bdf6706.png 0735ecfe-3a30-eb11-8da9-e4434bdf6706.png

更多詳情使用方法請看Github:https://github.com/gabriel-TheCode/AestheticDialogs

N4. EasyReveal

從名字就知道,這是一個提供reveal動畫效果的庫,它的厲害之處在於可以提供不同尺寸、不同形狀的reveal動畫,並且還可以在定義它在螢幕任意位置開始和結束動畫。

4.1 如何使用?

在build.gradle 中新增如下依賴:

dependencies{...implementation'com.github.Chrisvin:EasyReveal:1.2'}

然後,xml中,需要新增顯示或者隱藏動畫的View應該包裹在EasyRevealLinearLayout中:

也可以在程式碼中新增:

valrevealLayout=EasyRevealLinearLayout(this)//SettheClipPathProviderthatisusedtocliptheviewforrevealanimationrevealLayout.clipPathProvider=StarClipPathProvider(numberOfPoints=6)//SetthedurationtakenforrevealanimationrevealLayout.revealAnimationDuration=1500//SetthedurationtakenforhideanimationrevealLayout.hideAnimationDuration=2000//Setlistenertogetupdatesduringreveal/hideanimationrevealLayout.onUpdateListener=object:RevealLayout.OnUpdateListener{overridefunonUpdate(percent:Float){Toast.makeText([email protected],"Revealedpercent:$percent",Toast.LENGTH_SHORT).show()}}//StartrevealanimationrevealLayout.reveal()//StarthideanimationrevealLayout.hide()

4.2效果圖

Emotion DialogDrake DialogEmoji Dialog

0835ecfe-3a30-eb11-8da9-e4434bdf6706.png 0935ecfe-3a30-eb11-8da9-e4434bdf6706.png 0c35ecfe-3a30-eb11-8da9-e4434bdf6706.png 0d35ecfe-3a30-eb11-8da9-e4434bdf6706.png 0e35ecfe-3a30-eb11-8da9-e4434bdf6706.png 0f35ecfe-3a30-eb11-8da9-e4434bdf6706.png

更多詳細使用資訊請看Github:https://github.com/Chrisvin/EasyReveal

No5. Android ColorX

Android ColorX 以Kotlin 擴充套件函式的形式提供了一些重要的獲取顏色的方法。通過提供不同顏色格式(RGB,HSV,CYMK等)的轉換功能,它使開發變得更加輕鬆。該庫的USP具有以下功能:

  • 顏色的不同陰影和色調。
  • 較深和較淺的陰影。
  • 顏色的補碼

5.1 如何使用?

在build.gradle 中新增如下依賴:

dependencies{implementation'me.jorgecastillo:androidcolorx:0.2.0'}

在程式碼中,一系列的轉換方法:

valcolor=Color.parseColor("#e91e63")valrgb=color.asRgb()valargb=color.asArgb()valhex=color.asHex()valhsl=color.asHsl()valhsla=color.asHsla()valhsv=color.asHsv()valcmyk=color.asCmyk()valcolorHsl=HSLColor(hue=210f,saturation=0.5f,lightness=0.5f)valcolorInt=colorHsl.asColorInt()valrgb=colorHsl.asRgb()valargb=colorHsl.asArgb()valhex=colorHsl.asHex()valcmyk=colorHsl.asCmyk()valhsla=colorHsl.asHsla()valhsv=colorHsl.asHsv()

5.2 效果圖

1035ecfe-3a30-eb11-8da9-e4434bdf6706.png

更多詳細使用資訊請看Github:https://github.com/JorgeCastilloPrz/AndroidColorX

No6. AnimatedBottomBar

這是一個帶動畫的底部導航欄庫。它使你可以以程式設計方式以及通過XML新增和刪除選項卡。此外,我們可以輕鬆地從BottomBar攔截選項卡。限制訪問應用程式導航中的高階區域時,“攔截”標籤非常有用。流暢的動畫提供了許多自定義選項,從動畫插值器到設定波紋效果。

6.1 如何使用?

在build.gradle 中新增如下依賴:

dependencies{implementation'nl.joery.animatedbottombar:library:1.0.8'}

在xml檔案中新增AnimatedBottomBar和自定義屬性

在res/menu目錄下定義tabs.xml檔案:

最後,程式碼中新增tab

//CreatingatabbypassingvaluesvalbottomBarTab1=AnimatedBottomBar.createTab(drawable,"Tab1")//CreatingatabbypassingresourcesvalbottomBarTab2=AnimatedBottomBar.createTab(R.drawable.ic_home,R.string.tab_2,R.id.tab_home)

6.2 效果圖

tab1tab2

1235ecfe-3a30-eb11-8da9-e4434bdf6706.png 1335ecfe-3a30-eb11-8da9-e4434bdf6706.png

詳情資訊請看Github: https://github.com/Droppers/AnimatedBottomBar

No7. RateBottomSheet

有時候,為了推廣我們的應用,我們需要讓使用者跳轉到應用商店為我們的APP打分,傳統的對話方塊使用者體驗很不好,而本庫則是用BottomSheet來進行提示,它位於底部縮略區域,使用者體驗很好。

7.1 如何使用呢?

在build.gradle 中新增如下依賴:

dependencies{implementation'com.mikhaellopez:ratebottomsheet:1.1.0'}

然後修改預設的string資原始檔來改變顯示文案:

LikethisApp?Doyoulikeusingthisapplication?YesIdoNotreallyRatethisappWouldyoumindtakingamomenttorateit?Itwon'ttakemorethanaminute.Thanksforyoursupport!RateitnowRemindmelaterNo,thanks

程式碼中使用:

RateBottomSheetManager(this).setInstallDays(1)//3bydefault.setLaunchTimes(2)//5bydefault.setRemindInterval(1)//2bydefault.setShowAskBottomSheet(false)//Truebydefault.setShowLaterButton(false)//Truebydefault.setShowCloseButtonIcon(false)//Truebydefault.monitor()//Showbottomsheetifmeetsconditions//WithAppCompatActivityorFragmentRateBottomSheet.showRateBottomSheetIfMeetsConditions(this)

7.2 效果圖

1535ecfe-3a30-eb11-8da9-e4434bdf6706.png

更多詳情請看Github:https://github.com/lopspower/RateBottomSheet

No8. TransformationLayout

這是一個用於Activity或者Fragment 以及View切換的過渡動畫庫,效果非常炫,它使用Material Design的運動系統過渡模式來建立變形動畫。該庫提供了用於繫結目標檢視,設定淡入淡出和路徑運動方向以及許多其他自定義選項的屬性。

8.1 如何使用?

在build.gradle 中新增如下依賴:

dependencies{implementation"com.github.skydoves:transformationlayout:1.0.4"}

然後,需要將我們需要新增過渡動畫的View包裹到 TransformationLayout:

比如我們要將一個fab 過渡到一個card卡片,佈局如下:

重點來了,繫結檢視,將一個targetView繫結到TransformationLayout有2種方式:

  • 通過在xml中指定屬性:
app:transformation_targetView="@+id/myCardView"
  • 在程式碼中繫結
transformationLayout.bindTargetView(myCardView)

當我們點選fab時,在監聽器中呼叫startTransform()開始過渡動畫,finishTransform()開始結束動畫。

//starttransformationwhentouchingthefab.fab.setOnClickListener{transformationLayout.startTransform()}//finishtransformationwhentouchingthemyCardView.myCardView.setOnClickListener{transformationLayout.finishTransform()}

8.2 效果圖

1735ecfe-3a30-eb11-8da9-e4434bdf6706.png

更多使用方式請看Github: https://github.com/skydoves/TransformationLayout

No9. Donut

這個一個可以展示多個數據集的圓環形控制元件,具有精細的顆粒控制、間隙功能、動畫選項以及按比例縮放其值的功能。可以用於專案中的一些資料統計。

9.1 如何使用?

在build.gradle 中新增如下依賴:

dependencies     implementation("app.futured.donut:library:$version")}

然後在佈局檔案中新增View:

然後在程式碼中設定資料:

valdataset1=DonutDataset(name="dataset_1",color=Color.parseColor("#FB1D32"),amount=1f)valdataset2=DonutDataset(name="dataset_2",color=Color.parseColor("#FFB98E"),amount=1f)donut_view.cap=5fdonut_view.submitData(listOf(dataset1,dataset2))

9.2 效果圖

1835ecfe-3a30-eb11-8da9-e4434bdf6706.png

更多用法請看Github: https://github.com/futuredapp/donut

No10. CurveGraphView

CurveGraphView 是一個帶有炫酷動畫統計圖表庫,除了效能出色並具有許多樣式選項之外,該庫還支援單個平面內的多個線圖。

多個折線圖對於比較不同股票,共同基金,加密貨幣等的價格非常有用。

10.1 如何使用?

1、在build.gradle 中新增如下依賴:

dependencies{implementation'com.github.swapnil1104:CurveGraphView:{current_lib_ver}'}

2、在xml檔案中添加布局:

然後在程式碼中新增各種配置項

curveGraphView=findViewById(R.id.cgv);curveGraphView.configure(newCurveGraphConfig.Builder(this).setAxisColor(R.color.Blue)//SetXandYaxislinecolorstroke..setIntervalDisplayCount(7)//SetnumberofvaluestobedisplayedinXax.setGuidelineCount(2)//Setnumberofbackgroundguidelinestobeshown..setGuidelineColor(R.color.GreenYellow)//Setcolorofthevisibleguidelines..setNoDataMsg("NoData")//Messagewhennodataisprovidedtotheview..setxAxisScaleTextColor(R.color.Black)//SetXaxisscaletextcolor..setyAxisScaleTextColor(R.color.Black)//SetYaxisscaletextcolor.build()););

3、 提供資料集

PointMappointMap=newPointMap();pointMap.addPoint(0,100);pointMap.addPoint(1,500);pointMap.addPoint(5,800);pointMap.addPoint(4,600);

10.2 效果圖

1935ecfe-3a30-eb11-8da9-e4434bdf6706.png

效果1

1a35ecfe-3a30-eb11-8da9-e4434bdf6706.png 1b35ecfe-3a30-eb11-8da9-e4434bdf6706.png

效果2

1c35ecfe-3a30-eb11-8da9-e4434bdf6706.png

更多詳細使用方式請看Github: https://github.com/swapnil1104/CurveGraphView

總結

以上就是本期的開源庫推薦,別忘了新增到你的收藏夾喲!如果你覺得還不錯,就三連支援一下吧!如果你還有一些有意思的,效果特別炫酷的庫,也歡迎評論區留言推薦,感謝閱讀,祝編碼愉快!

---END---