दिलचस्प पोस्ट
ओपनसीवी में छेद भरें एक वेबसाइट पर शब्दों को जोड़ने के लिए सर्वोत्तम अभ्यास अगर अजगर की सूची की समझ में / else MATLAB में मैट्रिक्स के हर पंक्ति / स्तंभ में मैं एक फ़ंक्शन कैसे लागू कर सकता हूँ? Log4j के साथ विभिन्न सामग्री की एकाधिक लॉग फाइल बनाना jQuery डिफर्ड – खत्म करने के लिए एकाधिक AJAX अनुरोधों की प्रतीक्षा कर रहा है Django फ़िल्टर – या? क्या आप कई दृश्यों पर एक UIGStureRecognizer संलग्न कर सकते हैं? डुप्लिकेट को रोकने के लिए एक इतिहास रखने के लिए, सीमा के भीतर अनन्य संख्या उत्पन्न करें (0 – X) वेक्टर <bool> एसटीएल कंटेनर क्यों नहीं है? यदि html <img> के src विशेषता को मान्य नहीं है, तो एक डिफ़ॉल्ट छवि को निविष्ट करना? हर एनथिल वर्ण स्ट्रिप विभाजित? सॉकेट। आतंक: एक सॉकेट को अपनी पहुंच अनुमतियों के द्वारा प्रतिबंधित करने के लिए एक प्रयास किया गया था सी ++ में स्ट्रिंग और चार प्रकारों के बीच का अंतर चित्र संसाधन लोड हो रहा है

मैं एंड्रॉइड चेतावनी संवाद की पृष्ठभूमि कैसे बदल सकता हूं?

मैं अपने आवेदन में AlertDialog वर्ग का उपयोग करता हूँ डिफ़ॉल्ट रूप से, इन अलर्ट संवादों में एक पारदर्शी पृष्ठभूमि होती है। मैं इसके बजाय एक अपारदर्शी पृष्ठभूमि का उपयोग करने की कोशिश कर रहा हूं, बहुत असफल। ये मेरी शैली हैं:

<style name="MyOpaqueActivity" parent="@android:style/Theme.Dialog"> <item name="android:windowBackground">@drawable/my_background</item> <item name="android:alertDialogStyle">@style/MyOpaqueAlertDialog</item> </style> <style name="MyOpaqueAlertDialog" parent="@android:style/Theme.Dialog.Alert"> <item name="android:background">#454545</item> <item name="android:windowBackground">@drawable/my_background</item> <item name="android:popupBackground">@drawable/my_background</item> </style> 

मैंने पूरी गतिविधियों के लिए सफलतापूर्वक "MyOpaqueActivity" शैली लागू की है (विंडो की पृष्ठभूमि को "my_background" में बदल दिया गया है), लेकिन यह उन गतिविधियों के भीतर चेतावनी संवाद के लिए काम नहीं करता है। "अलर्ट डीआलोगस्टाइल" विशेषता और मेरी "मायओपाकअलार्टडायलोग" शैली का कोई प्रभाव नहीं है।

तो मैं इन चेतावनी संवादों की पृष्ठभूमि कैसे बदल सकता हूँ?

वेब के समाधान से एकत्रित समाधान "मैं एंड्रॉइड चेतावनी संवाद की पृष्ठभूमि कैसे बदल सकता हूं?"

आपका दृष्टिकोण काम नहीं करेगा ऐसा लगता है कि अलर्टडायलाओग (और बिल्डर) हार्डकोड थीम को और कहीं भी सचेतक डेलॉगस्टाइल का सम्मान नहीं करते हैं:

 protected AlertDialog(Context context) { this(context, com.android.internal.R.style.Theme_Dialog_Alert); } public Builder(Context context) { this(context, com.android.internal.R.style.Theme_Dialog_Alert); } 

वे यहां एक ही निष्कर्ष पर आए थे

अलर्ट डाइलाओल से प्राप्त एक कस्टम डायलॉग क्लास जिसे संरक्षित कन्स्ट्रक्टर अलर्ट डायालॉग (प्रसंग, आर। शैली। माय ओपाकेअलार्ट डायलॉग) कहलाता है एक वैकल्पिक हल होगा।

नवीनतम एंड्रॉइड स्रोत में, अलर्ट डाइलॉग के लिए एक नया सार्वजनिक कन्स्ट्रक्टर है। बिल्डर जो थीम तर्क लेता है। दुर्भाग्य से, यह अभी तक जारी नहीं किया गया है (शायद जिंजरब्रेड में?)।

यह एक XML शैली में ऐसा करना आसान है जब आप यह मानते हैं कि AlertDialogs के कुछ खास विशेष गुण हैं

हालांकि, यह जानना दिलचस्प होगा कि आप किस एंड्रॉइड वर्जन को संदर्भित कर रहे हैं (या पर लक्ष्य कर रहे हैं)। थीम। डायलॉग अपेक्षाकृत नया है जहाँ तक मुझे पता है। नए एंड्रॉइड संस्करण भी उन सभी परिस्थितियों में अलर्टडायलीॉग्स का उपयोग नहीं करते हैं, जहां पुराने संस्करणों में उनका उपयोग किया गया था।

एंड्रॉइड 2.2 में यह मेरे लिए काम करता है:

 <style name="MyTheme" parent="@android:style/Theme"> <item name="android:alertDialogStyle">@style/MyOpaqueAlertDialog</item> </style> <style name="MyOpaqueAlertDialog"> <item name="android:fullDark">@drawable/[...]</item> <item name="android:topDark">@drawable/[...]</item> <item name="android:centerDark">@drawable/[...]</item> <item name="android:bottomDark">@drawable/[...]</item> <item name="android:fullBright">@drawable/[...]</item> <item name="android:topBright">@drawable/[...]</item> <item name="android:centerBright">@drawable/[...]</item> <item name="android:bottomBright">@drawable/[...]</item> <item name="android:bottomMedium">@drawable/[...]</item> <item name="android:centerMedium">@drawable/[...]</item> </style> 

नए एंड्रॉइड संस्करणों में एंड्रॉइड भी है: प्रगति लेआउट और एंड्रॉइड: अलर्ट डीआलाओग शैली के लिए क्षैतिज प्रगति लेआउट विशेषताएँ

इसके अलावा, नए एंड्रॉइड संस्करणों में, अलर्ट डीआलाओग थीम को एक कस्टम थीम में अलर्ट डीआलोग स्टाइल के बजाय अलर्ट डीआईएलओघथीम का उपयोग करके संभव है। AlertDDialogThemes windowBackground, windowTitleStyle आदि जैसे अधिक परिचित और अधिक शक्तिशाली विशेषताओं का समर्थन करते हैं। Styles.xml और themes.xml पर एक नज़र डालें।

दुर्भाग्यवश, सुपर गरीब होने पर उस सुविधा का दस्तावेज जोड़ा गया था। कृपया अपने आप को खोजने के लिए whcih दृष्टिकोण आपके लिए सबसे अच्छा है

प्रलेखन से यह दिखता है कि आप ऐसा कर सकते हैं क्रेट डिआलिग में।

 FrameLayout fl = (FrameLayout) findViewById(android.R.id.custom); fl.setBackgroundResource(); // has to be a drawable. 

केवल अन्य समाधान उस थीम का उपयोग करके एक कस्टम संवाद है