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;
|
package btools.routingapp;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.AssetManager;
|
import android.content.res.AssetManager;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
@ -10,7 +9,6 @@ import android.graphics.Color;
|
||||||
import android.graphics.Matrix;
|
import android.graphics.Matrix;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.DisplayMetrics;
|
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
@ -29,13 +27,7 @@ public class BInstallerView extends View {
|
||||||
private final File segmentDir;
|
private final File segmentDir;
|
||||||
private final Matrix mat;
|
private final Matrix mat;
|
||||||
private final Bitmap bmp;
|
private final Bitmap bmp;
|
||||||
private final float viewscale;
|
|
||||||
private final int[] tileStatus;
|
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 float[] testVector = new float[2];
|
||||||
private final Matrix matText;
|
private final Matrix matText;
|
||||||
Paint pnt_1 = new Paint();
|
Paint pnt_1 = new Paint();
|
||||||
|
@ -44,8 +36,14 @@ public class BInstallerView extends View {
|
||||||
int btnh = 40;
|
int btnh = 40;
|
||||||
int btnw = 160;
|
int btnw = 160;
|
||||||
float tx, ty;
|
float tx, ty;
|
||||||
|
private int imgwOrig;
|
||||||
|
private int imghOrig;
|
||||||
|
private float scaleOrig;
|
||||||
|
private int imgw;
|
||||||
|
private int imgh;
|
||||||
private float lastDownX;
|
private float lastDownX;
|
||||||
private float lastDownY;
|
private float lastDownY;
|
||||||
|
private float viewscale;
|
||||||
private boolean tilesVisible = false;
|
private boolean tilesVisible = false;
|
||||||
private long availableSize;
|
private long availableSize;
|
||||||
private long totalSize = 0;
|
private long totalSize = 0;
|
||||||
|
@ -56,20 +54,6 @@ public class BInstallerView extends View {
|
||||||
public BInstallerView(Context context, AttributeSet attrs) {
|
public BInstallerView(Context context, AttributeSet attrs) {
|
||||||
super(context, 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());
|
File baseDir = ConfigHelper.getBaseDir(getContext());
|
||||||
segmentDir = new File(baseDir, "brouter/segments4");
|
segmentDir = new File(baseDir, "brouter/segments4");
|
||||||
|
|
||||||
|
@ -83,14 +67,8 @@ public class BInstallerView extends View {
|
||||||
}
|
}
|
||||||
|
|
||||||
tileStatus = new int[72 * 36];
|
tileStatus = new int[72 * 36];
|
||||||
|
matText = new Matrix();
|
||||||
float scaleX = imgwOrig / ((float) bmp.getWidth());
|
|
||||||
float scaley = imghOrig / ((float) bmp.getHeight());
|
|
||||||
|
|
||||||
viewscale = Math.min(scaleX, scaley);
|
|
||||||
|
|
||||||
mat = new Matrix();
|
mat = new Matrix();
|
||||||
mat.postScale(viewscale, viewscale);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAvailableSize(long availableSize) {
|
public void setAvailableSize(long availableSize) {
|
||||||
|
@ -151,6 +129,25 @@ public class BInstallerView extends View {
|
||||||
@Override
|
@Override
|
||||||
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
|
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
|
||||||
super.onSizeChanged(w, h, oldw, 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
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue