Pie*_*rtz 2 java android if-statement
我的Android应用程序中有一个方法,它采用动态设置的字体大小,并返回一个比例较小的字体大小.它从getTextSize()获取的值用于标题,较小的out值用于正文文本.目前它写成:
public int getSmallerTextSize(){
int textSize = (int)Math.round(getTextSize() * 0.8);
if(textSize > 20){
textSize = 20;
}else if(textSize < 10){
textSize = 10;
}
return textSize;
}
Run Code Online (Sandbox Code Playgroud)
我想找一个更短,更少笨重的方式来表达这一点.一种选择是:
public int getSmallerTextSize(){
int textSize = (int)Math.round(getTextSize() * 0.8);
textSize = textSize > 10 ? textSize : 10;
textSize = textSize > 20 ? 20 : textSize;
return textSize;
}
Run Code Online (Sandbox Code Playgroud)
但同样:很多代码都是如此简单.有人可以建议一个优雅的优选单行代码来表达这个吗?
dre*_*ash 10
只需使用以下表达式:
textSize = Math.min(Math.max(textSize,10),20);
Run Code Online (Sandbox Code Playgroud)