我正在使用JAVA,并正在开发android应用
我有一个搜索栏,我向用户显示有关屏幕亮度的调整。您可能知道,layoutparams.screenbrightness
(ANDRIOD)返回浮动0.01 - 1.0
范围内的当前屏幕亮度。
但是问题是,seekbar 只能接受整数。现在,我希望将layoutParams.screenBrightness
返回的浮点数转换为搜索栏的整数,因此
(float)0.01 =1 (int)
(float)0.02 =2 (int)
(float)0.03 =3 (int)
(float)0.04 =4 (int)
//and so on...
我为此做了以下操作,但seekbar表现得很疯狂,但我不知道为什么。
//adjusts the brighness on swiping on the screen
seekbar.setMax((int) (layoutParams.screenBrightness * 100)); // 0.01*100=1, 0.02*100 =2
seekbar.setVisibility(View.VISIBLE);
if (distanceY < 0) {/*dragging up to bottom. decrease brightness*/
if (layoutParams.screenBrightness - 0.05 <= 1.0) {
layoutParams.screenBrightness = (float) (layoutParams.screenBrightness - 0.05);
getWindow().setAttributes(layoutParams);
seekbar.setProgress((int) (layoutParams.screenBrightness * 100));
}
} else {/*dragging bottom to up. increase brightness*/
if (layoutParams.screenBrightness + 0.05 <= 1.0) {
layoutParams.screenBrightness = (float) (layoutParams.screenBrightness + 0.05);
getWindow().setAttributes(layoutParams);
seekbar.setProgress((int) (layoutParams.screenBrightness * 100));
}
}
SOLUTION
问题是
seekbar.setMax((int) (layoutParams.screenBrightness * 100));
我将其更改为
seekbar.setMax(100);
问题已解决!