import android.content.Context
import android.util.AttributeSet
import android.util.Log
import android.view.View
class MeasureView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : View(context, attrs, defStyleAttr) {
companion object{
const val TAG = "MeasureView"
}
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
val specWidthMode = MeasureSpec.getMode(widthMeasureSpec)
val specWidthSize = MeasureSpec.getSize(widthMeasureSpec)
when (specWidthMode) {
MeasureSpec.EXACTLY -> {
Log.i(TAG,"Width EXACTLY")
}
MeasureSpec.AT_MOST -> {
Log.i(TAG,"Width AT_MOST")
}
MeasureSpec.UNSPECIFIED -> {
Log.i(TAG,"Width UNSPECIFIED")
}
}
val specHeightMode = MeasureSpec.getMode(heightMeasureSpec)
val specHeightSize = MeasureSpec.getSize(heightMeasureSpec)
when (specHeightMode) {
MeasureSpec.EXACTLY -> {
Log.i(TAG,"Height EXACTLY")
}
MeasureSpec.AT_MOST -> {
Log.i(TAG,"Height AT_MOST")
}
MeasureSpec.UNSPECIFIED -> {
Log.i(TAG,"Height UNSPECIFIED")
}
}
setMeasuredDimension(specWidthSize, specHeightSize)
}
}
```
```