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
更多詳細使用方法請看Github: https://github.com/Chrisvin/LiquidSwipe
我的學習Android進階之路
接下來,為大家介紹下我學習Android時用到的一些資料與視訊,需要的夥伴可以
私信我【進階】,我分享給你,也是感謝大家這麼久以來對我的支援。
B站Android進階視訊
去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
更多詳細使用請看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
Emotion DialogDrake DialogEmoji Dialog
更多詳情使用方法請看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
更多詳細使用資訊請看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 效果圖
更多詳細使用資訊請看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
詳情資訊請看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 效果圖
更多詳情請看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 效果圖
更多使用方式請看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 效果圖
更多用法請看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 效果圖
效果1
效果2
更多詳細使用方式請看Github: https://github.com/swapnil1104/CurveGraphView
總結
以上就是本期的開源庫推薦,別忘了新增到你的收藏夾喲!如果你覺得還不錯,就三連支援一下吧!如果你還有一些有意思的,效果特別炫酷的庫,也歡迎評論區留言推薦,感謝閱讀,祝編碼愉快!
---END---