From 3928e7dbcf7c1e4db4b5a1df1702e303f7953a56 Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Sun, 19 Jan 2020 13:00:13 +0100 Subject: [PATCH] use DIPs for ArrowedText --- .../android/vanilla/LibraryActivity.java | 17 +++++---- .../android/vanilla/ui/ArrowedText.java | 36 +++++++++++++++---- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/LibraryActivity.java b/app/src/main/java/ch/blinkenlights/android/vanilla/LibraryActivity.java index 4a8c4a5c..09d46fcb 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/LibraryActivity.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/LibraryActivity.java @@ -523,16 +523,14 @@ public class LibraryActivity colors[1] = tmp; } - int rightPadding = 2; if (last) { colors[1] = 0xFF404040; - rightPadding = 0; view.setOnClickListener(this); } int leftPadding = 14; if (first) { - leftPadding = 4; + leftPadding = 6; colors[0] = colors[1]; } @@ -541,22 +539,23 @@ public class LibraryActivity view.setText(txt); view.setTextColor(Color.WHITE); view.setLayoutParams(params); - view.setPadding(leftPadding, 6, rightPadding, 6); - view.setArrowWidth(arrowWidth); + view.setPaddingDIP(leftPadding, 2, 6, 2); + view.setArrowWidthDIP(arrowWidth); view.setTag(i); view.setColors(colors[0], colors[1]); mLimiterViews.addView(view); if (last) { + final int ap = 10; ArrowedText end = new ArrowedText(this); end.setOnClickListener(this); end.setText("×"); end.setTextColor(0xFFB0B0B0); end.setLayoutParams(params); - end.setPadding(6, 6, 0, 6); - end.setArrowPadding(14); - end.setArrowWidth(arrowWidth); - end.setMinWidth(arrowWidth+14); + end.setPaddingDIP(0, 2, 0, 2); + end.setArrowWidthDIP(arrowWidth); + end.setArrowPaddingDIP(ap); + end.setMinWidthDIP(arrowWidth+ap); end.setTag(i); end.setColors(colors[1], 0); mLimiterViews.addView(end); diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/ui/ArrowedText.java b/app/src/main/java/ch/blinkenlights/android/vanilla/ui/ArrowedText.java index 3e060568..dd3e830f 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/ui/ArrowedText.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/ui/ArrowedText.java @@ -34,36 +34,58 @@ public class ArrowedText extends TextView { * Context this view uses. */ Context mContext; + /** + * Display density of the device. + */ + float mDensity; /** * Color of the arrow on the left side. */ int mArrowColor; /** - * Controls the width of the drawn arrow. + * Controls the width of the drawn arrow in DIP. */ float mArrowWidth; /** - * 'padding' space (used left side) for the arrow to consume. + * 'padding' space (used left side) for the arrow to consume in DIP. */ - int mArrowPadding; + float mArrowPadding; public ArrowedText(Context context) { super(context); mContext = context; + mDensity = context.getResources().getDisplayMetrics().density; } /** * Configures the width of the arrow. */ - public void setArrowWidth(int w) { - mArrowWidth = w; + public void setArrowWidthDIP(float w) { + mArrowWidth = w * mDensity; } /** * Configures how much space the arrow uses on the left side. */ - public void setArrowPadding(int p) { - mArrowPadding = p; + public void setArrowPaddingDIP(float p) { + mArrowPadding = p * mDensity; + } + + /** + * Configures the padding of this view in DIP. + */ + public void setPaddingDIP(float left, float top, float right, float bottom) { + setPadding((int)(left*mDensity), + (int)(top*mDensity), + (int)(right*mDensity), + (int)(bottom*mDensity)); + } + + /** + * Configures the minimal width of this view in DIP. + */ + public void setMinWidthDIP(float w) { + setMinWidth((int)(w*mDensity)); } /**