2011-05-23 7 views
5

मेरे पास एक साधारण गतिविधि है और मैं एक गोलाकार आयताकार आकार रखना चाहता हूं। गतिविधि एक पारदर्शी ड्राइंग का उपयोग करता है। मैंने अन्य डेवलपर्स द्वारा पॉपअप विंडो देखी हैं जो गोलाकार कोनों के साथ पारदर्शी (एक संवाद विषय नहीं) हैं और मैं इसे दोहराने की कोशिश कर रहा हूं। किसी भी सहायता की सराहना की जाएगी।गतिविधि की पारदर्शी पृष्ठभूमि में गोलाकार कोनों को कैसे जोड़ा जाए?

यहां वर्तमान में कोड है जो स्क्रीन के बीच में एक आयताकार पारदर्शी खिड़की का उत्पादन करता है।

<style name="Theme.TranslucentDialog"> 
    <item name="android:colorBackgroundCacheHint">@null</item> 
    <item name="android:windowIsTranslucent">true</item> 
    <!-- Note that we use the base animation style here (that is no 
     animations) because we really have no idea how this kind of 
     activity will be used. --> 
    <item name="android:windowBackground">@drawable/translucent_background</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:colorForeground">#fff</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:backgroundDimEnabled">false</item> 
    <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item> 
</style> 

<drawable name="translucent_background">#60000000</drawable> 

उत्तर

8

मैं कोड में एक कस्टम आकार उत्पन्न करके यह करने के लिए सक्षम नहीं था। मुझे अपनी 9-पैच पीएनजी फाइल बनाकर इसे पूरा करना पड़ा।

<item name="android:windowBackground">@drawable/notification_panel</item> 

यह पंक्ति है कि 9-पैच छवि है कि मैं बनाया करने के लिए गतिविधि की पृष्ठभूमि सेट है:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="Theme" parent="android:Theme"> 
    </style> 

    <style name="Theme.TranslucentDialog"> 
     <item name="android:colorBackgroundCacheHint">@null</item> 
     <item name="android:windowIsTranslucent">true</item> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:colorForeground">#ffffff</item> 
     <item name="android:windowIsFloating">true</item> 
     <item name="android:backgroundDimEnabled">false</item> 
     <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item> 
     <item name="android:windowBackground">@drawable/notification_panel</item> 
    </style> 

</resources> 

लाइन कृपया ध्यान दें: यहाँ अंतिम विषय है कि मैं बनाया है। यह छवि कुछ भी हो सकती है, एक छवि, एक 9-पैच या एक कस्टम आकार। मैंने 9-पैच का उपयोग किया ताकि मैं एक बहुत ही पारदर्शी गतिविधि खिड़की को बनाए रखने के दौरान एक अच्छी सीमा और गोलाकार कोनों में रह सकूं (इसके पीछे सब कुछ दिखा रहा हो लेकिन भूरे रंग का एक अच्छा रंग छोड़कर जहां गतिविधि विंडो स्थित है)।

9-पैच अधिसूचना_panel.9.png मेरे खींचने योग्य फ़ोल्डर में स्थित है। सबसे पहले मैं अपनी 9-पैच छवि बनाने के लिए थोड़ा डरा था, लेकिन यह पता चला है कि इंकस्केप और एंड्रॉइड draw9patch.bat उपयोगिता प्रोग्राम का उपयोग करके, मैं इसे संतोषजनक परिणामों के साथ करने में सक्षम था।

अगर किसी के पास कोई प्रश्न है तो मुझे बताएं।

+2

आप 9-पथ छवि फ़ाइल साझा कर सकते हैं दिखाया गया है? – Derzu

+0

मैं पदों के लिए png फ़ाइलों को संलग्न करने के लिए कैसे पता नहीं है :(आप तो Google "एंड्रॉइड 9 पैच" के लिए आस-पास है, मुझे यकीन है कि आप उदाहरण पा सकते हैं। –

5

आपको एक कस्टम आकार बनाना होगा। यहाँ एक उदाहरण xml फ़ाइल (गोलाकार कोनों के साथ सफेद आयत) है:

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient 
     android:startColor="#ffffff" 
     android:endColor="#ffffff"/> 
    <corners 
     android:radius="8dp"/> 
</shape> 
+0

क्या आप वाकई एक पारदर्शी ड्रॉबल के साथ ऐसा कर सकते हैं? ​​# 60000000

+0

बस # 60000000 –

+0

के साथ 'स्टार्टकॉलर' और 'एंडकॉलर' को प्रतिस्थापित करें धन्यवाद, मैं कोशिश करूंगा और आपको बताऊंगा कि यह कैसे निकलता है। –

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