2011-01-10 15 views
10

मैं एक विजेट से स्क्रीन चमक सेट करने की कोशिश कर रहा हूँ। हम यह आसानी से संभव है के बाद से विजेट का टन यह पहले से ही पता है, लेकिन कैसे .....एक विजेट से प्रदर्शन को ताज़ा करना?

एक सेवा मैं विजेट से कॉल में मैं इस रोशनी भी सेट कर देते:

Settings.System.putInt(this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 200); 

काम करता है यही कारण है कि महान छोड़कर यह नई सेटिंग्स को लागू करने के लिए स्क्रीन को "रीफ्रेश" नहीं करता है। स्क्रीन को बंद करना और डिस्प्ले सेटिंग रीफ्रेश करता है, इसलिए हम जानते हैं कि कोड काम करता है।

मैंने कई साइटों पर भी पढ़ा है कि इस तरह से कुछ स्क्रीन रीफ्रेश करेगा, लेकिन हम इसका उपयोग नहीं कर सकते क्योंकि हम एक विजेट में हैं। विजेट गतिविधि और सेवा getWindow का उपयोग नहीं कर सकती है।

WindowManager.LayoutParams lp = getWindow().getAttributes(); 
lp.screenBrightness = 100/100.0f; 
getWindow().setAttributes(lp); 

सुंदर विजेट, पावर कंट्रोल, विस्तारित नियंत्रण इत्यादि जैसे ये सभी विजेट कैसे हैं?

अद्यतन: एक और पोस्टर ने एक खाली गतिविधि को मारने और विंडोमैनेजर रीफ्रेश को निष्पादित करने की अनुशंसा की। यह काम करता है लेकिन यह एक सेकंड के लिए एक बदसूरत ब्लैक स्क्रीन लाता है। चूंकि अन्य विजेट ऐसा नहीं करते हैं, इसलिए बदसूरत खाली ब्लैक स्क्रीन को दिखने से रोकने का एक तरीका होना चाहिए।

+1

blackscreen के लिए, गतिविधि पर एक विषय निर्धारित करते हैं, जिसमें इस: <शैली नाम = "Theme.Transparent" जनक = "एंड्रॉयड: थीम"> <आइटम नाम = "एंड्रॉयड: windowIsTranslucent"> सच <आइटम नाम = "एंड्रॉयड: windowBackground"> ​​@ रंग/पारदर्शी <आइटम नाम = "एंड्रॉयड: windowContentOverlay"> @ अशक्त <आइटम नाम = "एंड्रॉयड: windowNoTitle"> सच <आइटम नाम = "एंड्रॉयड: windowIsFloating" > सच <आइटम का नाम = "एंड्रॉइड: पृष्ठभूमिडिम सक्षम"> झूठा –

+0

यह पूरी तरह से काम करता है! क्या आप इसे सभी के लिए नीचे दिए गए उत्तर के रूप में पोस्ट करना चाहते हैं? मैंने आपकी थीम का इस्तेमाल किया और इसे मेरे मैनिफेस्ट में सेट किया। – pcm2a

उत्तर

8

blackscreen के लिए, गतिविधि पर एक विषय निर्धारित करते हैं, इस युक्त उत्तर के लिए

<style name="Theme.Transparent" parent="android:Theme"> 
<item name="android:windowIsTranslucent">true</item> 
<item name="android:windowBackground">@color/transparent</item> 
<item name="android:windowContentOverlay">@null</item> 
<item name="android:windowNoTitle">true</item> 
<item name="android:windowIsFloating">true</item> 
<item name="android:backgroundDimEnabled">false</item> 
</style> 

धन्यवाद सेबस्टियन, मैं इसे यहाँ में कॉपी किया है।

+2

यह वास्तव में अच्छा जवाब है लेकिन मेरे पास एक नोट है। @ रंग/पारदर्शी डालने के बजाय @android: रंग/पारदर्शी – Lukap

संबंधित मुद्दे