2013-04-20 7 views
5

के लिए मैं जिसमें मैं एक बटन के क्लिक पर त्वरित कार्रवाई संवाद दिखाने के लिए एक आवेदन के विकास कर रहा हूँ अनुकूलित करें। यहां एक उदाहरण दिया गया है कि मैं इसे कैसे कार्यान्वित करना चाहता हूं।त्वरित कार्रवाई संवाद एंड्रॉयड

What I want to implement.

अब तक मैं समझ नहीं सकता कैसे एक कस्टम त्वरित कार्रवाई संवाद बनाने के लिए। लेकिन मैंने एक गतिविधि का उपयोग करने की कोशिश की है और कुछ जो मैं प्राप्त करना चाहता हूं उसके करीब हूं। यहां तक ​​कि मैंने अभी तक किया है।

बटन मैं गतिविधि के इरादे से गुजर रहा हूँ पर क्लिक करने पर:

if (v.getId() == R.id.points) { 
     Toast.makeText(MainActivity.this, "Clicked on points", 
       Toast.LENGTH_SHORT).show(); 
     Intent i = new Intent(MainActivity.this, PointsActionMenu.class); 
     startActivity(i); 
    } 

और मैं styles.xml का इस्तेमाल किया है गतिविधि पारदर्शी बनाने के लिए।

Styles.xml

<style name="Theme.Transparent" parent="android:Theme"> 
    <item name="android:windowIsTranslucent">true</item> 
    <item name="android:windowBackground">@android: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> 

इन बातों को मैं अपने स्क्रीन पर इस यूआई मिल गया है को लागू करने।

  1. मैं गतिविधि का इस्तेमाल किया और मेरी जरूरतों के लिए काम करने के लिए एक लेआउट तैयार की है: Reached till here

    अब, मैं दो प्रश्न हैं। त्वरित कार्रवाई संवाद का उपयोग करके इसे लागू करने का कोई आसान तरीका है। मुझे लगता है कि के लिए 2-3 उदाहरणों के माध्यम से चले गए हैं , लेकिन मैं करने में असमर्थ था मेरी आवश्यकता के अनुसार अनुकूलित।

  2. जहां तक ​​मेरा एक गतिविधि का उपयोग कर लागू कर दिया है, यह स्क्रीन के बीच में दिखाया जा रहा है के रूप में चित्र में दिखाया गया है मैं सही कोने में गतिविधि के डिफ़ॉल्ट जगह बदल सकते हैं।

जवाब का किसी भी मेरी मदद कर सकते हैं।

मदद किसी भी तरह का

इस बात के लिए सराहना की जाएगी।

+0

आप की कोशिश की है 'एंड्रॉयड: के लिए # 2 नंबर समस्या gravity'? –

उत्तर

2

मुझे लगता है कि मैं मेरी समस्या हल। यहां यह अब ऐसा लगता है।

What I found

एकीकृत यह स्थिति है स्थापित करने के लिए निम्न कोड।

WindowManager.LayoutParams wmlp = this.getWindow().getAttributes(); 

    wmlp.gravity = Gravity.TOP | Gravity.LEFT; 
    wmlp.x = 80; // x position 
    wmlp.y = 60; // y position 
+0

अपने खुद के उत्तर को सही के रूप में चिह्नित करें, फिर। –

+0

क्या आपने इसे अन्य स्क्रीन आकारों और घनत्वों पर परीक्षण किया है? जब तक कि आप इसे केवल एक ही डिवाइस पर चलाने के लिए नहीं चाहते हैं, यह आपको बाद में सिरदर्द पेश कर सकता है। – RobGThai

+0

@ अनुपम मैंने भी इसी तरह के पॉपअप संवाद विकसित किया है। क्या आप अपना पॉपअप विंडो साझा कर सकते हैं? – GrIsHu

2

आप विचार करना चाहेंगे कि विभिन्न उपकरणों और स्क्रीन आकारों पर क्या होता है। इस के साथ डीपी के पास पिक्सल स्केलिंग पर विचार करें:

int x = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80, getResources().getDisplayMetrics()); 
int y = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 60, getResources().getDisplayMetrics()); 

संपादित करें:

wmlp.x = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80, getResources().getDisplayMetrics()); 
wmlp.y = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 60, getResources().getDisplayMetrics()); 
+0

मुझे इसे कहां लागू करना चाहिए? – Anupam

+0

मैंने अपनी प्रतिक्रिया संपादित की। - वह फ़ंक्शन जो भी "पिक्सेल" मान को उचित "डीपी" मान में प्रदान करता है उसे परिवर्तित करता है। – LuckyMe

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