使用该控件的
OnGlobalLayoutListener
即可获得其宽/高,并进行重新绘制
private fun setWHRatio(v: View){
v.viewTreeObserver.addOnGlobalLayoutListener(object :ViewTreeObserver.OnGlobalLayoutListener{
override fun onGlobalLayout() {
Log.d("MyRatio", "Width: ${v.width}")
v.layoutParams.height = (v.width * 1.5).toInt() //可自行设置比例
v.invalidate()
v.viewTreeObserver.removeOnGlobalLayoutListener(this)
}
})
}
使用时,只需要在onCreate
中调用该函数即可
setWHRatio(myView)