From b8496ffe5e1637c554d714a0412aa98a498839de Mon Sep 17 00:00:00 2001 From: Manuel Fuhr Date: Wed, 20 Oct 2021 07:54:08 +0200 Subject: [PATCH] Use View dimensions instead of display dimensions --- .../btools/routingapp/BInstallerView.java | 55 +++++++++---------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/brouter-routing-app/src/main/java/btools/routingapp/BInstallerView.java b/brouter-routing-app/src/main/java/btools/routingapp/BInstallerView.java index 50cd5a3..c1ca7df 100644 --- a/brouter-routing-app/src/main/java/btools/routingapp/BInstallerView.java +++ b/brouter-routing-app/src/main/java/btools/routingapp/BInstallerView.java @@ -1,6 +1,5 @@ package btools.routingapp; -import android.app.Activity; import android.content.Context; import android.content.res.AssetManager; import android.graphics.Bitmap; @@ -10,7 +9,6 @@ import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.util.AttributeSet; -import android.util.DisplayMetrics; import android.view.MotionEvent; import android.view.View; @@ -29,13 +27,7 @@ public class BInstallerView extends View { private final File segmentDir; private final Matrix mat; private final Bitmap bmp; - private final float viewscale; private final int[] tileStatus; - private final int imgwOrig; - private final int imghOrig; - private final float scaleOrig; - private final int imgw; - private final int imgh; private final float[] testVector = new float[2]; private final Matrix matText; Paint pnt_1 = new Paint(); @@ -44,8 +36,14 @@ public class BInstallerView extends View { int btnh = 40; int btnw = 160; float tx, ty; + private int imgwOrig; + private int imghOrig; + private float scaleOrig; + private int imgw; + private int imgh; private float lastDownX; private float lastDownY; + private float viewscale; private boolean tilesVisible = false; private long availableSize; private long totalSize = 0; @@ -56,20 +54,6 @@ public class BInstallerView extends View { public BInstallerView(Context context, AttributeSet attrs) { super(context, attrs); - DisplayMetrics metrics = new DisplayMetrics(); - ((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(metrics); - imgwOrig = metrics.widthPixels; - imghOrig = metrics.heightPixels; - int im = Math.max(imgwOrig, imghOrig); - - scaleOrig = im / 480.f; - - matText = new Matrix(); - matText.preScale(scaleOrig, scaleOrig); - - imgw = (int) (imgwOrig / scaleOrig); - imgh = (int) (imghOrig / scaleOrig); - File baseDir = ConfigHelper.getBaseDir(getContext()); segmentDir = new File(baseDir, "brouter/segments4"); @@ -83,14 +67,8 @@ public class BInstallerView extends View { } tileStatus = new int[72 * 36]; - - float scaleX = imgwOrig / ((float) bmp.getWidth()); - float scaley = imghOrig / ((float) bmp.getHeight()); - - viewscale = Math.min(scaleX, scaley); - + matText = new Matrix(); mat = new Matrix(); - mat.postScale(viewscale, viewscale); } public void setAvailableSize(long availableSize) { @@ -151,6 +129,25 @@ public class BInstallerView extends View { @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); + + imgwOrig = getWidth(); + imghOrig = getHeight(); + int im = Math.max(imgwOrig, imghOrig); + + scaleOrig = im / 480.f; + + matText.preScale(scaleOrig, scaleOrig); + + imgw = (int) (imgwOrig / scaleOrig); + imgh = (int) (imghOrig / scaleOrig); + + float scaleX = imgwOrig / ((float) bmp.getWidth()); + float scaley = imghOrig / ((float) bmp.getHeight()); + + viewscale = Math.min(scaleX, scaley); + + mat.postScale(viewscale, viewscale); + tilesVisible = false; } @Override