Anko的使用(一)

本篇简要学习Anko中对自定义View的扩展,以FaceBook的图片加载框架fresco中的SimpleDraweeView为例。

必要条件

支持kotlin及kotlin扩展
引入anko及anko扩展(个人建议引入github上面anko项目下所有库)

开始

创建一个名为views.kt的文件

写入以下代码

1
2
3
inline fun ViewManager.simpleDraweeView(theme: Int = 0) = simpleDraweeView(theme) {}

inline fun ViewManager.simpleDraweeView(theme: Int = 0, init: SimpleDraweeView.() -> Unit) = ankoView({ SimpleDraweeView(it) }, theme, init)

其中SimpleDraweeView代表自定义view的名称,simpleDraweeView则代表该自定义view在Anko中使用的名称,
建议自定义view以类名的驼峰式命名。

使用(在AnkoComponent的实现类中)

1
2
3
4
5
6
7
8
9
10
11
12
class MainAnkoUI<in MainActivity> : AnkoComponent<MainActivity> {
override fun createView(ui: AnkoContext<MainActivity>) = ui.apply{
ui.constraintLayout() {
simpleDraweeView {
hierarchy=GenericDraweeHierarchyBuilder(resources)
.setPlaceholderImage(R.mipmap.ic_launcher)
.build()
}.lparams(200, 200)
.setImageURI("Http://******")
}
}.view
}

结语

第一篇就这样吧,写短一点。