如何有效地将浮点数转换为整数,以便0.01代表1,0.02代表2,依此类推

问题描述 投票:-4回答:1

我正在使用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));
                        }

                    }
java android android-seekbar
1个回答
0
投票

SOLUTION

问题是

seekbar.setMax((int) (layoutParams.screenBrightness * 100));

我将其更改为

seekbar.setMax(100);

问题已解决!

© www.soinside.com 2019 - 2024. All rights reserved.