From 14e9a8b6fc10379819f7e3406692151dc8759e59 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Tue, 26 Apr 2022 02:04:49 +0500 Subject: [PATCH] Changed: Use float dp parameter instead of int for `ViewUtils.dpToPx()` to not lose precision --- .../src/main/java/com/termux/shared/view/ViewUtils.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/termux-shared/src/main/java/com/termux/shared/view/ViewUtils.java b/termux-shared/src/main/java/com/termux/shared/view/ViewUtils.java index e0d87345..d7b52198 100644 --- a/termux-shared/src/main/java/com/termux/shared/view/ViewUtils.java +++ b/termux-shared/src/main/java/com/termux/shared/view/ViewUtils.java @@ -216,15 +216,18 @@ public class ViewUtils { return null; } + /** Convert value in device independent pixels (dp) to pixels (px) units. */ - public static int dpToPx(Context context, int dp) { - return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); + public static float dpToPx(Context context, float dp) { + return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); + } } public static void setLayoutMarginsInDp(@NonNull View view, int left, int top, int right, int bottom) { Context context = view.getContext(); - setLayoutMarginsInPixels(view, dpToPx(context, left), dpToPx(context, top), dpToPx(context, right), dpToPx(context, bottom)); + setLayoutMarginsInPixels(view, (int) dpToPx(context, left), (int) dpToPx(context, top), + (int) dpToPx(context, right), (int) dpToPx(context, bottom)); } public static void setLayoutMarginsInPixels(@NonNull View view, int left, int top, int right, int bottom) {