-
Notifications
You must be signed in to change notification settings - Fork 30
/
Copy pathRDimen.kt
65 lines (54 loc) · 1.36 KB
/
RDimen.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
@file:JvmName("RichUtils")
@file:JvmMultifileClass
package pyxis.uzuki.live.richutilskt.utils
import android.content.Context
/**
* convert dip to px
*
* @param[value] to convert
* @return calculated dip
*/
fun Context.dip2px(value: Int): Int = (value * resources.displayMetrics.density).toInt()
/**
* convert dip to px
*
* @param[value] to convert
* @return calculated dip
* @since 1.0.1
*/
fun Context.dip2px(value: Float): Int = (value * resources.displayMetrics.density).toInt()
/**
* convert sp to px
*
* @param[value] to convert
* @return calculated sp
*/
fun Context.sp2px(value: Int): Int = (value * resources.displayMetrics.scaledDensity).toInt()
/**
* convert sp to px
*
* @param[value] to convert
* @return calculated sp
*/
fun Context.sp2px(value: Float): Int = (value * resources.displayMetrics.scaledDensity).toInt()
/**
* convert px to dip
*
* @param[px] to convert
* @return calculated dip
*/
fun Context.px2dip(px: Int): Float = px.toFloat() / resources.displayMetrics.density
/**
* convert px to sp
*
* @param[px] to convert
* @return calculated sp
*/
fun Context.px2sp(px: Int): Float = px.toFloat() / resources.displayMetrics.scaledDensity
/**
* get pixel size from DimenRes
*
* @param[resource] dimen res to convert
* @return proper pixel size
*/
fun Context.dimen(resource: Int): Int = resources.getDimensionPixelSize(resource)