android以编程方式更改时显示亮度指示器栏

时间:2018-07-31 09:07:18

标签: android brightness indicator screen-brightness

所以我有一个有效的代码来更改屏幕的亮度,就像在回答她时一样-

Change the System Brightness Programmatically

我只是找不到任何地方,当用户从应用程序更改设备时,如何显示设备的亮度指示条发生变化。

例如,要更改音量,有一个标志告诉其显示UI(FLAG_SHOW_UI)-

mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, newStreamVolume, AudioManager.FLAG_SHOW_UI);

我试图在亮度参数上达到相同的效果。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

与音量不同,没有物理按钮可以更改亮度,因此弹出指示亮度变化的提示变得毫无意义。请注意,可以在屏幕控件上和带有显示弹出窗口的按钮控件上更改音量,但只能在屏幕控件上更改亮度。

您可以使用SeekBar来显示亮度级别,从而实现代码。 通过获取当前亮度来设置当前亮度级别

Settings.System.getInt(getContext().getContentResolver(), 
         Settings.System.SCREEN_BRIGHTNESS);

答案 1 :(得分:0)

在清单中添加权限:-

<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>

设置亮度:-

ContentResolver cResolver = this.getApplicationContext().getContentResolver();
Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness);

您可以显示一个用于改变亮度的搜索栏:-

//Register OnSeekBarChangeListener, so it can actually change values
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
{
    public void onStopTrackingTouch(SeekBar seekBar)
    {
        //Set the system brightness using the brightness variable value
        Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness);

    }
    public void onStartTrackingTouch(SeekBar seekBar)
    {
        //Nothing handled here
    }
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
    {

    }
});
}