Kotlin執行個體----android5.0新特性之palette

來源:互聯網
上載者:User

標籤:mil   out   ges   nbsp   his   ttext   nta   rri   tac   

一、Palette的使用

使用Palette可以讓我們從一張圖片中拾取顏色,將拾取到的顏色賦予ActionBar,StatusBar以及UI背景色可以讓介面色調實現統一或者載入不同圖片時同步變化色調

1、使用Palette需要添加以下依賴:

  implementation ‘com.android.support:palette-v7:26.0.2‘(Android Studio 3.0 Beta 5)

2、ImageView 中擷取Bitmap對象(或者其他BItmap對象)

   bitmap = ((iv as ImageView).getDrawable() as BitmapDrawable).bitmap

 

 

3、傳入Bitmap即可擷取Palette對象,以下是同步和非同步使用方式:

 

  //同步擷取,需要在子線程中使用;否則會造成主線程阻塞
  val palette : Palette = Palette.from(bitmap).generate()
//非同步擷取,可以在主線程中使用
  Palette.from(bitmap).generate(Palette.PaletteAsyncListener { palette: Palette? ->
    //.........對Palette對象進行操作...........//
  })

 

4、得到Palette對象後,擷取其中的顏色,顏色對應如下:

//1.活力顏色
val vibrant: Palette.Swatch? = palette?.vibrantSwatch
//2.亮的活力顏色
val lightbarant: Palette.Swatch? = palette?.lightMutedSwatch
//3.暗的活力顏色
val darkvibrant: Palette.Swatch? = palette?.darkVibrantSwatch
//4.柔色
val Munted: Palette.Swatch? = palette?.mutedSwatch
//5.亮的柔色
val lightmuted: Palette.Swatch? = palette?.lightMutedSwatch
//6.暗的柔色
val darkmuted: Palette.Swatch? = palette?.darkMutedSwatch

 

5、使用擷取到的顏色設定到其他UI中

  // 修改Actionbar背景顏色

val bar :ActionBar = this!!.supportActionBar!!

bar.setBackgroundDrawable(ColorDrawable(vibrant?.rgb!!))

// 修改按鈕文字的顏色

bt.setTextColor(vibrant?.rgb!!)


二、執行個體代碼
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
bitmap = ((iv as ImageView).getDrawable() as BitmapDrawable).bitmap
bt.setOnClickListener {
Palette.from(bitmap).generate(Palette.PaletteAsyncListener { palette: Palette? ->
//1.活力顏色
val vibrant: Palette.Swatch? = palette?.vibrantSwatch
//2.亮的活力顏色
val lightbarant: Palette.Swatch? = palette?.lightMutedSwatch
//3.暗的活力顏色
val darkvibrant: Palette.Swatch? = palette?.darkVibrantSwatch
//4.柔色
val Munted: Palette.Swatch? = palette?.mutedSwatch
//5.亮的柔色
val lightmuted: Palette.Swatch? = palette?.lightMutedSwatch
//6.暗的柔色
val darkmuted: Palette.Swatch? = palette?.darkMutedSwatch
// 修改Actionbar背景顏色
val bar :ActionBar = this!!.supportActionBar!!
bar.setBackgroundDrawable(ColorDrawable(vibrant?.rgb!!))
// 修改按鈕文字的顏色
bt.setTextColor(vibrant?.rgb!!)
})
}
}



  
 點擊Button後
 
 
 

Kotlin執行個體----android5.0新特性之palette

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.