feat:完成发红包UI国际化

This commit is contained in:
Max
2023-10-24 10:29:47 +08:00
parent 5163c2dc9d
commit ba65ad680f
10 changed files with 192 additions and 44 deletions

View File

@@ -0,0 +1,86 @@
package com.chuhai.utils
import android.annotation.SuppressLint
import android.content.Context
import android.os.Build
import android.util.DisplayMetrics
import android.util.TypedValue
import android.view.View
import android.view.WindowManager
import androidx.core.text.TextUtilsCompat
import androidx.core.view.ViewCompat
/**
*
* @author Max
* @date 2019-12-10.
*/
object UiUtils {
fun getScreenWidth(context: Context): Int {
val wm = context.getSystemService(Context.WINDOW_SERVICE) as? WindowManager
val outMetrics = DisplayMetrics()
wm?.defaultDisplay?.getMetrics(outMetrics)
return outMetrics.widthPixels
}
fun getScreenHeight(context: Context): Int {
val wm = context.getSystemService(Context.WINDOW_SERVICE) as? WindowManager
val outMetrics = DisplayMetrics()
wm?.defaultDisplay?.getMetrics(outMetrics)
return outMetrics.heightPixels
}
fun getScreenRatio(context: Context): Float {
return getScreenWidth(context) * 1.0f / getScreenHeight(context)
}
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
fun dip2px(dpValue: Float): Int {
return dip2px(AppUtils.getApp(), dpValue)
}
/**
* 根据手机的分辨率从 px(像素) 的单位 转成为 dp
*/
fun px2dip(pxValue: Float): Float {
return px2dip(AppUtils.getApp(), pxValue)
}
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
fun dip2px(context: Context, dpValue: Float): Int {
return (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpValue, context.resources.displayMetrics) + 0.5f).toInt()
}
/**
* 根据手机的分辨率从 px(像素) 的单位 转成为 dp
*/
fun px2dip(context: Context, pxValue: Float): Float {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, pxValue, context.resources.displayMetrics)
}
/**
* 是否从右到左布局
*/
@SuppressLint("NewApi")
fun isRtl(view: View): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
View.LAYOUT_DIRECTION_RTL == view.layoutDirection
} else {
false
}
}
/**
* 是否从右到左布局
*/
fun isRtl(context: Context): Boolean {
return TextUtilsCompat.getLayoutDirectionFromLocale(context.resources.configuration.locale) == ViewCompat.LAYOUT_DIRECTION_RTL
}
}

View File

@@ -0,0 +1,53 @@
package com.chuhai.utils.ktx
import com.chuhai.utils.UiUtils
import kotlin.math.roundToInt
/**
* UI
* @author Max
* @date 2020-01-10.
*/
/**
* 转换为PX值
*/
val Float.dp: Int get() = this.toPX()
val Int.dp: Int get() = this.toPX()
/**
* 转换为DP值
*/
val Float.px: Int get() = this.toDP().roundToInt()
val Int.px: Int get() = this.toDP().roundToInt()
fun Long.toDP(): Float {
return UiUtils.px2dip(this.toFloat())
}
fun Float.toDP(): Float {
return UiUtils.px2dip(this)
}
fun Int.toDP(): Float {
return UiUtils.px2dip(this.toFloat())
}
fun Long.toPX(): Int {
return UiUtils.dip2px(this.toFloat())
}
fun Float.toPX(): Int {
return UiUtils.dip2px(this)
}
fun Int.toPX(): Int {
return UiUtils.dip2px(this.toFloat())
}