用kotlin语言,在安卓中怎么计算出status bar 和action bar 的高度
时间: 2023-06-14 16:02:48 浏览: 158
使用Kotlin开发Android应用的初体验
在Kotlin中,可以通过以下方式获取状态栏和操作栏的高度:
```kotlin
// 获取状态栏高度
fun getStatusBarHeight(context: Context): Int {
var statusBarHeight = 0
val resourceId = context.resources.getIdentifier("status_bar_height", "dimen", "android")
if (resourceId > 0) {
statusBarHeight = context.resources.getDimensionPixelSize(resourceId)
}
return statusBarHeight
}
// 获取操作栏高度
fun getActionBarHeight(context: Context): Int {
val actionBarHeight: Int
val styledAttributes = context.theme.obtainStyledAttributes(
intArrayOf(android.R.attr.actionBarSize)
)
actionBarHeight = styledAttributes.getDimension(0, 0f).toInt()
styledAttributes.recycle()
return actionBarHeight
}
```
在上述代码中,`getStatusBarHeight`函数使用`resources.getIdentifier`方法获取状态栏高度资源的ID,然后使用`resources.getDimensionPixelSize`方法获取像素值。`getActionBarHeight`函数使用`theme.obtainStyledAttributes`方法获取操作栏的高度,然后使用`getDimension`方法获取像素值。
使用方式如下:
```kotlin
val statusBarHeight = getStatusBarHeight(context)
val actionBarHeight = getActionBarHeight(context)
```
阅读全文