我一直試圖在Android設置的限制下設置亮度。有在谷歌兩個類似Play的應用程式這樣做:使用alpha和保存值將亮度設置爲低於系統限制
第二個,甚至允許使用手機黑屏,正是我需要在我的應用程序。
有很多關於亮度等問題,但不能將其設置在該系統的限制,我發現一個問題,問幾乎是相同的,但沒有幫助我: Brightness Screen Filter
所以之後很多搜索我有下面的代碼:
int brightness=0; //0 to 255, so I set it to a low level (not enough for me)
ContentResolver cResolver = getContentResolver();
//set the system brightness value, and if active, disable auto mode.
System.putInt(cResolver, System.SCREEN_BRIGHTNESS, brightness);
System.putInt(cResolver, System.SCREEN_BRIGHTNESS_MODE, System.SCREEN_BRIGHTNESS_MODE_MANUAL);
//previous lines don't set the brightness to the current screen so we set it like this:
LayoutParams layoutpars = getWindow().getAttributes();
layoutpars.screenBrightness = brightness/(float)255;
//Now we have brightness to the minimum allowed by Android but
//to achieve what these apps do, I have to reduce alpha of the window to the min
//then the screen is black like I want, and totally usable!
layoutpars.alpha=0.05f;
window.setAttributes(layoutpars);
這裏阿爾法是關鍵,這是做我想要的東西,但只爲當前窗口/屏幕,我需要這個阿爾法保存到系統默認,就像我在處理亮度和手動模式時一樣。
你知道我該怎麼做嗎?我無法找到一個值「System.SCREEN_ALPHA」來設置System.putInt或另一種方式來做到這一點。
在我之前關聯的另一個問題中,pheelicks回覆了一個使用透明的非觸摸屏幕的建議,但這不適用於我,結果並沒有給出像以前那樣關閉屏幕的感覺應用。
謝謝。
嘿!你的問題如何解決?我有同樣的要求! – 2016-06-21 12:32:32