Use View dimensions instead of display dimensions
This commit is contained in:
parent
50a7c2244f
commit
b8496ffe5e
1 changed files with 26 additions and 29 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue