日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

作者:西哥

1. Coil

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

Coil是Android上的一個(gè)全新的圖片加載框架,它的全名叫做coroutine image loader,即協(xié)程圖片加載庫。與傳統(tǒng)的圖片加載庫Glide,Picasso或Fresco等相比。該具有輕量(只有大約1500個(gè)方法)、快、易于使用、更現(xiàn)代的API等優(yōu)勢。

它支持GIF和SVG,并且可以執(zhí)行四個(gè)默認(rèn)轉(zhuǎn)換:模糊,圓形裁剪,灰度和圓角。

示例如下:

imageView.load(“https://www.example.com/image.jpg") { crossfade(true) placeholder(R.drawable.image) transformations(CircleCropTransformation())}

并且是全用Kotlin編寫,如果你是純Kotlin項(xiàng)目的話,那么這個(gè)庫應(yīng)該是你的首選。

Github地址:https://github.com/coil-kt/coil

2. MultiSearchView

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

該庫具有一個(gè)非??岬腟earch View動(dòng)畫!

使用非常簡單,并且可以自定義,你可以在在styles.xml下添加自定義樣式。

示例代碼:

<com.iammert.library.ui.multisearchviewlib.MultiSearchView        android:layout_width="match_parent"        android:layout_height="wrap_content"/>     

multiSearchView.setSearchViewListener(object : MultiSearchView.MultiSearchViewListener{    override fun onItemSelected(index: Int, s: CharSequence) {    }    override fun onTextChanged(index: Int, s: CharSequence) {    }    override fun onSearchComplete(index: Int, s: CharSequence) {    }    override fun onSearchItemRemoved(index: Int) {    }})

自定義樣式:

  <!-- Search Text Style. -->    <style name="SearchTextStyle">        <!-- Custom values write to here for SearchEditText. -->        <item name="android:focusable">true</item>        <item name="android:focusableInTouchMode">true</item>        <item name="android:enabled">true</item>        <item name="android:hint">Search</item>        <item name="android:imeOptions">actionSearch</item>        <item name="android:textSize">18sp</item>        <item name="android:maxLength">15</item>        <item name="android:inputType">textCapSentences</item>        <item name="android:textColorHint">#80999999</item>        <item name="android:textColor">#000</item>    </style>

然后,您應(yīng)該將樣式設(shè)置為MultiSearchView下的app:searchTextStyle。

Github地址:https://github.com/iammert/MultiSearchView

3. CalendarView

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

CalendarView是一個(gè)高度可定制化的日歷組件庫,用recycleView實(shí)現(xiàn)。

它有如下特性:

  • 單一或范圍選擇
  • 周歷或者月歷模式
  • 邊界日期
  • 自定義日歷視圖
  • 水平或者垂直滾動(dòng)模式
  • 完全可定制的視圖

該庫的文檔也非常全面,并包含許多示例。此外,還有一個(gè)示例應(yīng)用程序展示了庫的所有功能。

它是用純Kotlin編寫的,并在MIT許可下發(fā)布。如果您需要在應(yīng)用程序中使用日歷視圖,這是一個(gè)不錯(cuò)的選擇。

注意:該庫通過Java 8 API使用了java.time類,以便向后兼容,因?yàn)檫@些類是在Java 8中添加的。

因此,需要在app的build.gradle 中添加如下配置:

android {  defaultConfig {    // Required ONLY when setting minSdkVersion to 20 or lower    multiDexEnabled true  }  compileOptions {    // Flag to enable support for the new language APIs    coreLibraryDesugaringEnabled true    // Sets Java compatibility to Java 8    sourceCompatibility JavaVersion.VERSION_1_8    targetCompatibility JavaVersion.VERSION_1_8  }}dependencies {  coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:<latest-version>'}

Github: https://github.com/kizitonwose/CalendarView

4. Bubble Navigation

FloatingTopBarActivityTopBarActivity

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

BottomBarActivityEqualBottomBarActivity

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

Bubble Navigation是一個(gè)輕巧的庫,可通過大量自定義選項(xiàng)輕松制作精美的導(dǎo)航欄。

它有很多非常的特性:

  • 針對(duì)不同用例的兩種類型的NavigationViews:
    • BubbleNavigationConstraintView(支持spreadspread,inside, 和 packed莫斯)
    • BubbleNavigationLinearView(允許平均分配,使用權(quán)重或packed模式)
  • 高度可定制化
  • 您可以添加小紅點(diǎn),它具有BubbleToggleView來創(chuàng)建新的UI組件,而不僅僅是導(dǎo)航

示例:

<com.gauravk.bubblenavigation.BubbleNavigationConstraintView        android:id="@ id/top_navigation_constraint"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginBottom="380dp"        android:background="@color/white"        android:elevation="4dp"        android:padding="12dp"        app:bnc_mode="spread">        <com.gauravk.bubblenavigation.BubbleToggleView            android:id="@ id/c_item_rest"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            app:bt_active="true"            app:bt_colorActive="@color/search_active"            app:bt_colorInactive="@color/search_inactive"            app:bt_icon="@drawable/ic_restaurant"            app:bt_shape="@drawable/transition_background_drawable_restaurant"            app:bt_title="@string/restaurant"            app:bt_padding="@dimen/internal_padding"            app:bt_titlePadding="@dimen/title_padding" />         <!-- Add more child items here - max upto 5 -->        </com.gauravk.bubblenavigation.BubbleNavigationConstraintView>

Github文檔很完善,有很多示例,更多用法和屬性可去Github了解。

Github:https://github.com/gauravk95/bubble-navigation

5. FabFilter

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

這是一個(gè)有趣的項(xiàng)目,它不是一個(gè)直接可用的庫,而是一個(gè)示例應(yīng)用程序,展示了使用和不使用 MotionLayout兩種方式來實(shí)現(xiàn)的高級(jí)UI動(dòng)畫。

詳細(xì)的實(shí)現(xiàn)細(xì)節(jié)可以看看Medium上的系列文章:

“Complex UI/Animations on Android”

“Complex UI/Animations on Android — featuring MotionLayout”

Github:https://github.com/nikhilpanju/FabFilter

6.android-showcase

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

android-showcase是一個(gè)非常優(yōu)秀的開源項(xiàng)目,它是一個(gè)展示應(yīng)用程序,展示了如何使用Kotlin和最新的Jetpack 技術(shù)棧來開發(fā)一個(gè)APP。

該項(xiàng)目為您帶來了一系列最佳實(shí)踐,工具和解決方案:

  • 100% Kotlin
  • 現(xiàn)代架構(gòu) (feature modules, clean architecture, Model-View-ViewModel, Model-View-Intent)
  • Android Jetpack組件
  • 單Activity模式,使用Navigation導(dǎo)航

看完這個(gè)項(xiàng)目,在模塊化,Clean體系結(jié)構(gòu),測試、設(shè)置CI / CD工具,等方面,你將會(huì)受到啟發(fā)。感謝作者的開源。

Github:https://github.com/igorwojda/android-showcase

7. Croppy

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

Croppy是一個(gè)Android圖片裁剪庫。

它有很多強(qiáng)大的特性:

  • 雙指縮放
  • 裁剪任意大小
  • 按照長寬比例裁剪
  • 顯示裁剪后的Bitmap
  • 自動(dòng)居中裁剪
  • 全面的動(dòng)畫使用體驗(yàn)

更多使用細(xì)節(jié)請(qǐng)看Github。

Github: https://github.com/lyrebirdstudio/Croppy

8. RubberPicker

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

一個(gè)炫酷的、有趣的SeekBar動(dòng)畫庫。

RubberPicker庫包含RubberSeekBar和RubberRangePicker,其靈感來自Cuberto的iOS橡膠范圍選擇器。

使用示例:

布局文件中配置

<com.jem.rubberpicker.RubberSeekBar  ...  app:minValue="20"  app:maxValue="80"  app:elasticBehavior="cubic"  app:dampingRatio="0.3"  app:stiffness="300"  app:stretchRange="24dp"  app:defaultThumbRadius="16dp"  app:normalTrackWidth="4dp"  app:highlightTrackWidth="8dp"  app:normalTrackColor="#AAAAAA"  app:highlightTrackColor="#BA1F33"  app:defaultThumbInsideColor="#FFF"  app:highlightDefaultThumbOnTouchColor="#CD5D67"/><!-- Similar attributes can be applied for RubberRangePicker as well--><com.jem.rubberpicker.RubberRangePicker  ...  app:minValue="0"  app:maxValue="100"  app:elasticBehavior="linear"  app:dampingRatio="0.4"  app:stiffness="400"  app:stretchRange="36dp"  app:defaultThumbRadius="16dp"  app:normalTrackWidth="4dp"  app:highlightTrackWidth="8dp"  app:normalTrackColor="#AAAAAA"  app:highlightTrackColor="#BA1F33"  app:defaultThumbInsideColor="#CFCD5D67"  app:highlightDefaultThumbOnTouchColor="#CD5D67"/>

或者,在代碼中動(dòng)態(tài)配置:

val rubberSeekBar = RubberSeekBar(this)rubberSeekBar.setMin(20)rubberSeekBar.setMax(80)rubberSeekBar.setElasticBehavior(ElasticBehavior.CUBIC)rubberSeekBar.setDampingRatio(0.4F)rubberSeekBar.setStiffness(1000F)rubberSeekBar.setStretchRange(50f)rubberSeekBar.setThumbRadius(32f)rubberSeekBar.setNormalTrackWidth(2f)rubberSeekBar.setHighlightTrackWidth(4f)rubberSeekBar.setNormalTrackColor(Color.GRAY)rubberSeekBar.setHighlightTrackColor(Color.BLUE)rubberSeekBar.setHighlightThumbOnTouchColor(Color.CYAN)rubberSeekBar.setDefaultThumbInsideColor(Color.WHITE)val currentValue = rubberSeekBar.getCurrentValue()rubberSeekBar.setCurrentValue(currentValue   10)rubberSeekBar.setOnRubberSeekBarChangeListener(object : RubberSeekBar.OnRubberSeekBarChangeListener {    override fun onProgressChanged(seekBar: RubberSeekBar, value: Int, fromUser: Boolean) {}    override fun onStartTrackingTouch(seekBar: RubberSeekBar) {}    override fun onStopTrackingTouch(seekBar: RubberSeekBar) {}})//Similarly for RubberRangePickerval rubberRangePicker = RubberRangePicker(this)rubberRangePicker.setMin(20)...rubberRangePicker.setHighlightThumbOnTouchColor(Color.CYAN)val startThumbValue = rubberRangePicker.getCurrentStartValue()rubberRangePicker.setCurrentStartValue(startThumbValue   10)val endThumbValue = rubberRangePicker.getCurrentEndValue()rubberRangePicker.setCurrentEndValue(endThumbValue   10)rubberRangePicker.setOnRubberRangePickerChangeListener(object: RubberRangePicker.OnRubberRangePickerChangeListener{    override fun onProgressChanged(rangePicker: RubberRangePicker, startValue: Int, endValue: Int, fromUser: Boolean) {}    override fun onStartTrackingTouch(rangePicker: RubberRangePicker, isStartThumb: Boolean) {}    override fun onStopTrackingTouch(rangePicker: RubberRangePicker, isStartThumb: Boolean) {}})

更多、更詳細(xì)的使用請(qǐng)看Github。

Github:https://github.com/Chrisvin/RubberPicker

9. Switcher

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

一個(gè)炫酷的Switcher 切換動(dòng)畫庫,真是的太可愛了,我前面也寫過文章專門介紹過:

炫酷!從未見過如此Q彈的Switcher

它的靈感來自于 Dribble上Oleg Frolov的設(shè)計(jì)。

Github: https://github.com/bitvale/Switcher

10. StfalconImageViewer

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

StfalconImageViewer是一個(gè)圖片查看庫, 該庫簡單且可定制。它包含一個(gè)全屏圖像查看器,具有共享的圖像過渡支持,捏合縮放功能以及滑動(dòng)手勢來關(guān)閉手勢。

Github文檔說明了如何使用每個(gè)功能。同樣值得注意的是:該庫與所有最受歡迎的圖像處理庫(例如Picasso,Glide等)兼容。

所有可配置項(xiàng)如下:

StfalconImageViewer.Builder<String>(this, images, ::loadImage)            .withStartPosition(startPosition)            .withBackgroundColor(color)            //.withBackgroundColorResource(R.color.color)            .withOverlayView(view)            .withImagesMargin(R.dimen.margin)            //.withImageMarginPixels(margin)            .withContainerPadding(R.dimen.padding)            //.withContainerPadding(R.dimen.paddingStart, R.dimen.paddingTop, R.dimen.paddingEnd, R.dimen.paddingBottom)            //.withContainerPaddingPixels(padding)            //.withContainerPaddingPixels(paddingStart, paddingTop, paddingEnd, paddingBottom)            .withHiddenStatusBar(shouldHideStatusBar)            .allowZooming(isZoomingAllowed)            .allowSwipeToDismiss(isSwipeToDismissAllowed)            .withTransitionFrom(targeImageView)            .withImageChangeListener(::onImageChanged)            .withDismissListener(::onViewerDismissed)            .withDismissListener(::onViewerDismissed)

更詳細(xì)的使用請(qǐng)看Github。

Github: https://github.com/stfalcon-studio/StfalconImageViewer

11. Broccoli

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

Broccoli是一個(gè)show View Loading 庫,也就是我常說的骨架屏,在內(nèi)容加載的時(shí)候,顯示一個(gè)占位符。

該庫帶有很平滑的動(dòng)畫效果,你可以配合RecyclerView一起使用,等待加載內(nèi)容時(shí),再也不枯燥了。

示例:

Broccoli broccoli = new Broccoli();//add the default style placeholderbroccoli.addPlaceholders('activity', 'view_id', 'view_id'); or //add the default style placeholderbroccoli.addPlaceholders('view1', 'view2', 'view3'); or //add the custom style placeholderbroccoli.addPlaceholder(new PlaceholderParameter.Builder()                        .setView('view')                        .setAnimation('scaleAnimation');                        .setDrawable(DrawableUtils.createRectangleDrawable(placeHolderColor, 0))                        .build()); or//add the custom style placeholder with gradient animationbroccoli.addPlaceholder(new PlaceholderParameter.Builder()                        .setView('view')                        .setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),                            Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator())                        .build()); broccoli.show();

更多使用請(qǐng)看Github。

Github: https://github.com/samlss/Broccoli

12. Orbit MVI

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

這是一個(gè)用于Kotlin和Android的Model-View-Intent (MVI)框架。它的靈感來自Jake Wharton,RxFeedback和Mosby的“Managing State with RxJava”。

根據(jù)ReadMe所說:

Orbit在您的redux實(shí)現(xiàn)周圍提供了盡可能小的結(jié)構(gòu),以使其易于使用,但您仍可以使用RxJava的強(qiáng)大功能。

redux系統(tǒng)可能如下所示:

data class State(val total: Int = 0)data class AddAction(val number: Int)sealed class SideEffect {    data class Toast(val text: String) : SideEffect()}class CalculatorViewModel : OrbitViewModel<State, SideEffect> (State(), {    perform("addition")        .on<AddAction>()        .sideEffect { post(SideEffect.Toast("Adding ${event.number}")) }        .reduce {            currentState.copy(currentState.total   event.number)        }    ...})

activity / fragment 中:

// Example of injection using koin, your DI system might differprivate val viewModel by viewModel<CalculatorViewModel>()override fun onCreate() {    ...    addButton.setOnClickListener { viewModel.sendAction(AddAction) }}override fun onStart() {    viewModel.connect(this, ::handleState, ::handleSideEffect)}private fun handleState(state: State) {    ...}private fun handleSideEffect(sideEffect: SideEffect) {    when (sideEffect) {        is SideEffect.Toast -> toast(sideEffect.text)    }}

詳細(xì)使用請(qǐng)看Github。

Github: https://github.com/babylonhealth/orbit-mvi

13. IndicatorScrollView

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

該庫為NestedScrollView添加了邏輯,使它可以在滾動(dòng)時(shí),更改對(duì)指示器進(jìn)行動(dòng)態(tài)響應(yīng)。

README文件包含開始項(xiàng)目所需的所有信息,例如如何使用IndicatorScrollView,IndicatorView和IndicatorItem。目前,它的版本為1.0.2,是根據(jù)Apache 2.0許可發(fā)布的。它支持API 16及更高版本。

文檔示例很詳細(xì),更多使用相關(guān)請(qǐng)看Github。

Github:https://github.com/skydoves/IndicatorScrollView

14. Cyanea

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

Cyanea 是一個(gè)Android 主題引擎庫。

它允許那你動(dòng)態(tài)更換應(yīng)用主題,它內(nèi)置了很多主題如:

  • Theme.Cyanea.Dark
  • Theme.Cyanea.Dark.LightActionBar
  • Theme.Cyanea.Dark.NoActionBar
  • Theme.Cyanea.Light
  • Theme.Cyanea.Light.DarkActionBar
  • Theme.Cyanea.Light.NoActionBar

更多詳細(xì)信息請(qǐng)看Github。

Github: https://github.com/jaredrummler/Cyanea

15. Android MotionLayout Carousel

這15個(gè)Android開源庫,只有經(jīng)常逛Github的才知道(android 開源)

這是一個(gè)示例項(xiàng)目,它展示了如何使用MotionLayout來實(shí)現(xiàn)一個(gè)炫酷的輪播圖。

文檔幾乎沒有任何說明,但是如果你最近也在探索MotionLayout,這將是一個(gè)很好示例。

Github: https://github.com/faob-dev/MotionLayoutCarousel

總結(jié)

以上就是本期的開源項(xiàng)目推薦,如果你也有好玩的、有趣的、強(qiáng)大的開源項(xiàng)目,也可以推薦給我,歡迎評(píng)論區(qū)留言討論。

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁
返回頂部
陆良县| 仙桃市| 祁门县| 巩留县| 班玛县| 安乡县| 商丘市| 内江市| 石台县| 汾西县| 电白县| 武宣县| 米林县| 宁河县| 咸丰县| 区。| 淳化县| 罗源县| 凤冈县| 达日县| 囊谦县| 武陟县| 宁海县| 五寨县| 商南县| 濮阳市| 汶川县| 石河子市| 朝阳县| 星座| 江孜县| 凤阳县| 皋兰县| 绥滨县| 青川县| 中方县| 河东区| 陇南市| 民和| 方城县| 施甸县|