I ran into a problem while coding in Kotlin. I copy-pasted a java code sample that converts DP to Pixels, in order to place it as a parameter for setting padding programatically. I was expecting the IDE to automatically transform it all to Kotlin, however it failed in the process.
The code in Java looks like the following:
float scale = getResources().getDisplayMetrics().density;
int dpAsPixels = (int) (sizeInDp*scale + 0.5f);
After the translation to Kotlin:
val scale = resources.displayMetrics.density
val dpAsPixels = (sizeInDp * scale + 0.5f) as Int
The cast as Int
is marked with the error
"This cast can never succeed"
How can this be fixed?
Why not trying it with an Extension Function such as
val Int.dp: Int get() = (this / getSystem().displayMetrics.density).toInt()
to convert to DP and
val Int.px: Int get() = (this * getSystem().displayMetrics.density).toInt()
to convert to Pixels?
Hope it helps :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With