android颜色透明度怎么设置 android按钮透明效果( 二 )

  
这里需要传入view对象,这个可以是布局中的任意一个view对象 。  
2.2.3 Alerts  
Anko Alerts主要包括以下几个功能:  
Android 默认dialogAndroid Appcompat 中AlertDialog自定义Dialog  
1.Android 默认dialog通过以下代码就可以构建一个可以交互的Android 默认dialog 。  
alert(\\”Hi, I\\’m Roy\\”, \\”Have you tried turning it off and on again?\\”) {yesButton { toast(\\”Oh…\\”) }noButton {}}.show()  
代码比较简单,就不做解释 。  
2.Android Appcompat 中AlertDialog另外Anko还提供了Appcompat的AlertDialog实现方式,如下:  
alert(Appcompat, \\”Some text message\\”).show()  
3.自定义Dialog什么,不能自定义dialog吗?怎么会,自定义dialog也是非常的简单  
alert {customView {editText()}}.show()  
2.2.4 Selectors (包含列表的Dialog)  
我们平时创建列表Dialog是这样的:  
val listItems = arrayOf(\\”Russia\\”, \\”USA\\”, \\”Japan\\”, \\”Australia\\”)//传数组val listDialog: AlertDialog.Builder = AlertDialog.Builder(this)listDialog.setItems(listItems) { p0, p1 ->toast(p1)}val dialog: AlertDialog = listDialog.create()dialog.show()val window: Window = dialog.windowval params: WindowManager.LayoutParams = window.attributesparams.y = 45 * ScreenUtils.getScreenDensity().toInt()params.gravity = Gravity.TOP or Gravity.RIGHTparams.width = ScreenUtils.getScreenWidth() / 2params.height = ViewGroup.LayoutParams.WRAP_CONTENTwindow.attributes = params  
但是我们用Anko是这样的:  
val countries = listOf(\\”Russia\\”, \\”USA\\”, \\”Japan\\”, \\”Australia\\”)//传listselector(\\”Where are you from?\\”, countries, { dialogInterface, i ->toast(\\”So you\\’re living in ${countries[i]}, right?\\”)})  
看起来只是简化了dialog的创建过程 。  
2.2.5 Progress dialogs  
不显示进度的 Loading Dialg  
pressDialog(\\”Please wait a minute.\\”, \\”Downloading…\\”)indeterminateProgressDialog(\\”Fetching the data…\\”)2.3 Logging  
打印log辅助工具 。  
Android SDK 提供 android.util.Log 类来提供一些 logging 方法,,这些方法都很实用,但是我们每次必须传递一个 Tag 参数,同时这个 Tag 信息必须是 String 类型的,这就略显麻烦 。不过现在我们可以通过 AnkoLogger 类摆脱这些恼人的问题:  
class SomeActivity : Activity(), AnkoLogger {fun someMethod() {info(\\”Info message\\”)debug(42) // .toString() method will be called automatically}}  
默认的 Tag 名是当前的类名( 本例中的是SomeActivity),但是通过重写 AnkoLogger 的 loggerTag 属性我们是可以来更改的,而且每个方法有两个版本:plain and lazy (inlined)  
1.Lazy:  
info(\\”String \\” + \\”concatenation\\”)info { \\”String \\” + \\”concatenation\\” }  
2.plain:  
class SomeActivity : Activity() {private val log = AnkoLogger(this.javaClass)private val logWithASpecificTag = AnkoLogger(\\”my_tag\\”)  
private fun someMethod() {log.warning(\\”Big brother is watching you!\\”)}}  
上面两种方法分别是不同Tag的实现方式 。  
AnkoLogger中loggerTag 属性具体对照如下:2.4 Resources and dimensions  
你可以在你的项目中使用Anko Resources and dimensions来简化你的代码,例如Color、Dimen等,颜色透明度直接色值.opaque就可以,尺寸的话直接使用dip(dipValue)、sp(spValue)就可以 。在这里面还有一个就是applyRecursively()用来控制子View的操作,如:  
verticalLayout {textView{text = \\”EditText01\\”backgroundColor = 0xff000.opaquetextSize = 14f}textView {text = \\”EditText02\\”backgroundColor = 0x99.gray.opaquetextSize = 23f}}.applyRecursively {//如果是ViewGroup的话可以使用applyRecursively来为每个Child View进行设置view -> when(view){is TextView -> view.textColor = Color.RED}}3.Anko Layouts


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。