mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
chore: format
This commit is contained in:
@@ -9,41 +9,52 @@ let sdkVersion: number;
|
||||
let useOldMeasureSpec = false;
|
||||
|
||||
export function makeMeasureSpec(size: number, mode: number): number {
|
||||
if (sdkVersion === undefined) {
|
||||
// check whether the old layout is needed
|
||||
sdkVersion = ad.getApplicationContext().getApplicationInfo().targetSdkVersion;
|
||||
useOldMeasureSpec = sdkVersion <= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1;
|
||||
}
|
||||
if (sdkVersion === undefined) {
|
||||
// check whether the old layout is needed
|
||||
sdkVersion = ad.getApplicationContext().getApplicationInfo()
|
||||
.targetSdkVersion;
|
||||
useOldMeasureSpec =
|
||||
sdkVersion <= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1;
|
||||
}
|
||||
|
||||
if (useOldMeasureSpec) {
|
||||
return size + mode;
|
||||
}
|
||||
if (useOldMeasureSpec) {
|
||||
return size + mode;
|
||||
}
|
||||
|
||||
return (size & ~MODE_MASK) | (mode & MODE_MASK);
|
||||
return (size & ~MODE_MASK) | (mode & MODE_MASK);
|
||||
}
|
||||
|
||||
export function getDisplayDensity(): number {
|
||||
if (density === undefined) {
|
||||
density = ad.getResources().getDisplayMetrics().density;
|
||||
}
|
||||
if (density === undefined) {
|
||||
density = ad.getResources().getDisplayMetrics().density;
|
||||
}
|
||||
|
||||
return density;
|
||||
return density;
|
||||
}
|
||||
|
||||
export function toDevicePixels(value: number): number {
|
||||
return value * getDisplayDensity();
|
||||
return value * getDisplayDensity();
|
||||
}
|
||||
|
||||
export function toDeviceIndependentPixels(value: number): number {
|
||||
return value / getDisplayDensity();
|
||||
return value / getDisplayDensity();
|
||||
}
|
||||
|
||||
export function measureNativeView(nativeView: any /* android.view.View */, width: number, widthMode: number, height: number, heightMode: number): { width: number, height: number } {
|
||||
const view = <android.view.View>nativeView;
|
||||
view.measure(makeMeasureSpec(width, widthMode), makeMeasureSpec(height, heightMode));
|
||||
export function measureNativeView(
|
||||
nativeView: any /* android.view.View */,
|
||||
width: number,
|
||||
widthMode: number,
|
||||
height: number,
|
||||
heightMode: number
|
||||
): { width: number; height: number } {
|
||||
const view = <android.view.View>nativeView;
|
||||
view.measure(
|
||||
makeMeasureSpec(width, widthMode),
|
||||
makeMeasureSpec(height, heightMode)
|
||||
);
|
||||
|
||||
return {
|
||||
width: view.getMeasuredWidth(),
|
||||
height: view.getMeasuredHeight()
|
||||
};
|
||||
return {
|
||||
width: view.getMeasuredWidth(),
|
||||
height: view.getMeasuredHeight(),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -68,7 +68,13 @@ export function round(px: px): px;
|
||||
* @param height the available hegiht
|
||||
* @param heightMode height mode - UNSPECIFIED, EXACTLY or AT_MOST
|
||||
*/
|
||||
export function measureNativeView(nativeView: any /* UIView or android.view.View */, width: number, widthMode: number, height: number, heightMode: number): { width: number, height: number };
|
||||
export function measureNativeView(
|
||||
nativeView: any /* UIView or android.view.View */,
|
||||
width: number,
|
||||
widthMode: number,
|
||||
height: number,
|
||||
heightMode: number
|
||||
): { width: number; height: number };
|
||||
|
||||
/**
|
||||
* Prints user friendly version of the measureSpec.
|
||||
|
||||
@@ -5,32 +5,44 @@ export * from "./layout-helper-common";
|
||||
let mainScreenScale;
|
||||
|
||||
export function makeMeasureSpec(size: number, mode: number): number {
|
||||
return (Math.round(Math.max(0, size)) & ~MODE_MASK) | (mode & MODE_MASK);
|
||||
return (Math.round(Math.max(0, size)) & ~MODE_MASK) | (mode & MODE_MASK);
|
||||
}
|
||||
|
||||
export function getDisplayDensity(): number {
|
||||
return mainScreenScale;
|
||||
return mainScreenScale;
|
||||
}
|
||||
|
||||
export function toDevicePixels(value: number): number {
|
||||
return value * mainScreenScale;
|
||||
return value * mainScreenScale;
|
||||
}
|
||||
|
||||
export function toDeviceIndependentPixels(value: number): number {
|
||||
return value / mainScreenScale;
|
||||
return value / mainScreenScale;
|
||||
}
|
||||
|
||||
export function measureNativeView(nativeView: any /* UIView */, width: number, widthMode: number, height: number, heightMode: number): { width: number, height: number } {
|
||||
const view = <UIView>nativeView;
|
||||
const nativeSize = view.sizeThatFits({
|
||||
width: widthMode === 0 /* layout.UNSPECIFIED */ ? Number.POSITIVE_INFINITY : toDeviceIndependentPixels(width),
|
||||
height: heightMode === 0 /* layout.UNSPECIFIED */ ? Number.POSITIVE_INFINITY : toDeviceIndependentPixels(height)
|
||||
});
|
||||
export function measureNativeView(
|
||||
nativeView: any /* UIView */,
|
||||
width: number,
|
||||
widthMode: number,
|
||||
height: number,
|
||||
heightMode: number
|
||||
): { width: number; height: number } {
|
||||
const view = <UIView>nativeView;
|
||||
const nativeSize = view.sizeThatFits({
|
||||
width:
|
||||
widthMode === 0 /* layout.UNSPECIFIED */
|
||||
? Number.POSITIVE_INFINITY
|
||||
: toDeviceIndependentPixels(width),
|
||||
height:
|
||||
heightMode === 0 /* layout.UNSPECIFIED */
|
||||
? Number.POSITIVE_INFINITY
|
||||
: toDeviceIndependentPixels(height),
|
||||
});
|
||||
|
||||
nativeSize.width = round(toDevicePixels(nativeSize.width));
|
||||
nativeSize.height = round(toDevicePixels(nativeSize.height));
|
||||
nativeSize.width = round(toDevicePixels(nativeSize.width));
|
||||
nativeSize.height = round(toDevicePixels(nativeSize.height));
|
||||
|
||||
return nativeSize;
|
||||
return nativeSize;
|
||||
}
|
||||
|
||||
mainScreenScale = UIScreen.mainScreen.scale;
|
||||
|
||||
@@ -13,51 +13,51 @@ export const MEASURED_STATE_MASK = 0xff000000;
|
||||
export const MEASURED_SIZE_MASK = 0x00ffffff;
|
||||
|
||||
export function getMode(mode: number): string {
|
||||
switch (mode) {
|
||||
case EXACTLY:
|
||||
return "Exact";
|
||||
case AT_MOST:
|
||||
return "AtMost";
|
||||
default:
|
||||
return "Unspecified";
|
||||
}
|
||||
switch (mode) {
|
||||
case EXACTLY:
|
||||
return "Exact";
|
||||
case AT_MOST:
|
||||
return "AtMost";
|
||||
default:
|
||||
return "Unspecified";
|
||||
}
|
||||
}
|
||||
|
||||
export function getMeasureSpecMode(spec: number): number {
|
||||
return (spec & MODE_MASK);
|
||||
return spec & MODE_MASK;
|
||||
}
|
||||
|
||||
export function getMeasureSpecSize(spec: number): number {
|
||||
return (spec & ~MODE_MASK);
|
||||
return spec & ~MODE_MASK;
|
||||
}
|
||||
|
||||
export function measureSpecToString(measureSpec: number): string {
|
||||
const mode = getMeasureSpecMode(measureSpec);
|
||||
const size = getMeasureSpecSize(measureSpec);
|
||||
const mode = getMeasureSpecMode(measureSpec);
|
||||
const size = getMeasureSpecSize(measureSpec);
|
||||
|
||||
let text = "MeasureSpec: ";
|
||||
if (mode === UNSPECIFIED) {
|
||||
text += "UNSPECIFIED ";
|
||||
} else if (mode === EXACTLY) {
|
||||
text += "EXACTLY ";
|
||||
} else if (mode === AT_MOST) {
|
||||
text += "AT_MOST ";
|
||||
}
|
||||
let text = "MeasureSpec: ";
|
||||
if (mode === UNSPECIFIED) {
|
||||
text += "UNSPECIFIED ";
|
||||
} else if (mode === EXACTLY) {
|
||||
text += "EXACTLY ";
|
||||
} else if (mode === AT_MOST) {
|
||||
text += "AT_MOST ";
|
||||
}
|
||||
|
||||
text += size;
|
||||
text += size;
|
||||
|
||||
return text;
|
||||
return text;
|
||||
}
|
||||
|
||||
export function round(value: number): number {
|
||||
const res = Math.floor(value + 0.5);
|
||||
if (res !== 0) {
|
||||
return res;
|
||||
} else if (value === 0) {
|
||||
return 0;
|
||||
} else if (value > 0) {
|
||||
return 1;
|
||||
}
|
||||
const res = Math.floor(value + 0.5);
|
||||
if (res !== 0) {
|
||||
return res;
|
||||
} else if (value === 0) {
|
||||
return 0;
|
||||
} else if (value > 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return -1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user