Skip to content

Instantly share code, notes, and snippets.

@BCsl
Last active May 29, 2016 13:38
Show Gist options
  • Save BCsl/4103e5def3adc11d26ac23155cb8b0a0 to your computer and use it in GitHub Desktop.
Save BCsl/4103e5def3adc11d26ac23155cb8b0a0 to your computer and use it in GitHub Desktop.
public static int resolveSizeAndState(int desireSize, int measureSpec) {
int result = desireSize;
int specMode = MeasureSpec.getMode(measureSpec);
int specSize = MeasureSpec.getSize(measureSpec);
switch (specMode) {
case MeasureSpec.UNSPECIFIED:
result = desireSize;
break;
case MeasureSpec.AT_MOST:
if (specSize < desireSize) {
result = specSize;
} else {
result = desireSize;
}
break;
case MeasureSpec.EXACTLY:
result = specSize;
break;
}
return result;
}
private static float dipToPixels(float dipValue) {
final float scale = Resources.getSystem().getDisplayMetrics().density;
return dipValue * scale + 0.5f;
}
private static float spToPixels(float spValue) {
final float fontScale = Resources.getSystem().getDisplayMetrics().scaledDensity;
return spValue * fontScale + 0.5f;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment