SDK Manager > AVD > Start: print computed scale.
This displays the scale computed by AVD Start.
I find it more intuitive to use if I see what the
emulator will be called with.
Change-Id: I337b264437dee81aed1bb9a1fbd11ccc9f506e88
diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdStartDialog.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdStartDialog.java
index f444c52..ffb8587 100644
--- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdStartDialog.java
+++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdStartDialog.java
@@ -83,6 +83,7 @@
private int mSize2 = -1;
private String mSkinDisplay;
private boolean mEnableScaling = true;
+ private Label mScaleField;
AvdStartDialog(Shell parentShell, AvdInfo avd, String sdkLocation,
SettingsController settingsController) {
@@ -162,6 +163,7 @@
onScaleChange();
}
});
+
// empty composite, only 2 widgets on this line.
new Composite(scaleGroup, SWT.NONE).setLayoutData(gd = new GridData());
gd.widthHint = gd.heightHint = 0;
@@ -203,6 +205,16 @@
}
});
+ l = new Label(scaleGroup, SWT.NONE);
+ l.setText("Scale:");
+ mScaleField = new Label(scaleGroup, SWT.NONE);
+ mScaleField.setLayoutData(new GridData(GridData.FILL, GridData.CENTER,
+ true /*grabExcessHorizontalSpace*/,
+ true /*grabExcessVerticalSpace*/,
+ 2 /*horizontalSpan*/,
+ 1 /*verticalSpan*/));
+ setScale(mScale); // set initial text value
+
enableGroup(scaleGroup, defaultState);
mScaleButton.addSelectionListener(new SelectionAdapter() {
@@ -213,7 +225,7 @@
if (enabled) {
onScaleChange();
} else {
- mScale = 0.f;
+ setScale(0);
}
}
});
@@ -308,13 +320,13 @@
private void onScaleChange() {
String sizeStr = mScreenSize.getText();
if (sizeStr.length() == 0) {
- mScale = 0.f;
+ setScale(0);
return;
}
String dpiStr = mMonitorDpi.getText();
if (dpiStr.length() == 0) {
- mScale = 0.f;
+ setScale(0);
return;
}
@@ -334,7 +346,21 @@
// the scale factor is a mix of adapting to the new density and to the new size.
// (size/diagonalIn) * (dpi/mDensity)
// this can be simplified to:
- mScale = (size * dpi) / diagonalPx;
+ setScale((size * dpi) / diagonalPx);
+ }
+
+ private void setScale(float scale) {
+ mScale = scale;
+
+ // Do the rounding exactly like AvdSelector will do.
+ scale = Math.round(scale * 100);
+ scale /= 100.f;
+
+ if (scale == 0.f) {
+ mScaleField.setText("default"); //$NON-NLS-1$
+ } else {
+ mScaleField.setText(String.format("%.2f", scale)); //$NON-NLS-1$
+ }
}
/**
@@ -348,7 +374,7 @@
}
if (sMonitorDpi == -1) { // first time? try to get a value
- sMonitorDpi = Toolkit.getDefaultToolkit().getScreenResolution();
+ sMonitorDpi = Toolkit.getDefaultToolkit().getScreenResolution();
}
return sMonitorDpi;