[英]Android screen brightness changes not working
按住按鈕時,我有以下代碼可更改屏幕亮度
ImageButton mfdBRTUp = (ImageButton) findViewById(R.id.imageButtonBRTup);
mfdBRTUp.setOnTouchListener(new OnTouchListener() {
boolean mHeldDown = false;
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if (arg1.getAction()==MotionEvent.ACTION_DOWN){
mHeldDown = true;
Thread thread = new Thread()
{
@Override
public void run() {
try {
while(mHeldDown) {
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
mBackLightValue += 4;
if(mBackLightValue>100)
mBackLightValue=100;
Log.d("onCreateOptionsMenu", "onTouch ACTION_DOWN mBackLightValue="+mBackLightValue);
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = mBackLightValue;
getWindow().setAttributes(layoutParams);
}
});
sleep(100);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
thread.start();
}
if (arg1.getAction()==MotionEvent.ACTION_UP){
mHeldDown = false;
}
return false;
}
});
一切似乎都很好,logcat輸出顯示mBackLightValue上升到100(當然,我還有另一個幾乎完全相同的按鈕)
問題是,它什么都不做。 我在設置中檢查了屏幕亮度控件,但它不是自動的。
我已經讀過這個主題的多個主題,而且所有人似乎都說唯一需要的是
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = mBackLightValue;
getWindow().setAttributes(layoutParams);
沒有權限或其他任何東西,所以我想念什么? 謝謝。
您的代碼似乎將亮度提高到100,但屏幕亮度應在0到1的范圍內,而不是0到100的范圍 。 任何超過1的值都將被讀取為全亮度,這可能是造成您問題的原因。 嘗試更改代碼以增加0.04,最大增加為1,而不是4和100。
來源: http : //developer.android.com/reference/android/view/WindowManager.LayoutParams.html#screenBrightness
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.