I\'d like to load the value as it is.
I have two dimension.xml
files, one in /res/values/dimension.xml
and the other one in /res/values-sw360
Context.getResources().getDimension(int id);
You can write integer in xml file also..
have you seen [this]
http://developer.android.com/guide/topics/resources/more-resources.html#Integer ?
use as .
context.getResources().getInteger(R.integer.height_pop);
You can add an extension to simplify this process. It enables you to just call context.dp(R.dimen. tutorial_cross_marginTop)
to get the Float value
fun Context.px(@DimenRes dimen: Int): Int = resources.getDimension(dimen).toInt()
fun Context.dp(@DimenRes dimen: Int): Float = px(dimen) / resources.displayMetrics.density
If you want to handle it without context, you can use Resources.getSystem()
:
val Int.dp get() = this / Resources.getSystem().displayMetrics.density // Float
val Int.px get() = (this * Resources.getSystem().displayMetrics.density).toInt()
For example, on an xhdpi device, use 24.dp
to get 12.0 or 12.px
to get 24