Skip to content

Instantly share code, notes, and snippets.

@icris
Created March 30, 2017 14:33
Show Gist options
  • Select an option

  • Save icris/938ad22ed944b097c256856cb9c75589 to your computer and use it in GitHub Desktop.

Select an option

Save icris/938ad22ed944b097c256856cb9c75589 to your computer and use it in GitHub Desktop.
Anko custom SimpleDraweeView. dependency: *Fresco*, *Anko*
@file:Suppress("NOTHING_TO_INLINE")
import android.app.Activity
import android.content.Context
import android.net.Uri
import android.view.ViewManager
import com.facebook.common.util.UriUtil
import com.facebook.drawee.backends.pipeline.Fresco
import com.facebook.drawee.view.SimpleDraweeView
import org.jetbrains.anko.custom.ankoView
/**
* custom view functions
* Created by icris on 2017/3/27.
*/
inline fun ViewManager.simpleDraweeView(theme: Int = 0): SimpleDraweeView = simpleDraweeView(theme) {}
inline fun ViewManager.simpleDraweeView(theme: Int = 0, init: SimpleDraweeView.() -> Unit)
= ankoView(::SimpleDraweeView, theme) { init() }
inline fun Context.simpleDraweeView(theme: Int = 0): SimpleDraweeView = simpleDraweeView(theme) {}
inline fun Context.simpleDraweeView(theme: Int = 0, init: SimpleDraweeView.() -> Unit)
= ankoView(::SimpleDraweeView, theme) { init() }
inline fun Activity.simpleDraweeView(theme: Int = 0): SimpleDraweeView = simpleDraweeView(theme) {}
inline fun Activity.simpleDraweeView(theme: Int = 0, init: SimpleDraweeView.() -> Unit)
= ankoView(::SimpleDraweeView, theme) { init() }
var SimpleDraweeView.imageRes get() = 1
set(value) {
val controller = Fresco.newDraweeControllerBuilder()
.setUri(UriUtil.getUriForResourceId(value))
.setAutoPlayAnimations(true)
.setOldController(controller)
.build()
setController(controller)
}
var SimpleDraweeView.imageUrl get() = ""
set(value) {
val controller = Fresco.newDraweeControllerBuilder()
.setUri(Uri.parse(value))
.setAutoPlayAnimations(true)
.setOldController(controller)
.build()
setController(controller)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment