2014-06-13 2 views
5

मैंने service बनाया है जो पूरी स्क्रीन के शीर्ष पर एक छवि ओवरले करेगा।एंड्रॉइड "भूत" छवि बनाएं (टच-थ्रू)

@Override public void onCreate() { 
    super.onCreate(); 

    windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); 

    img = new ImageView(this); 
    img.setImageResource(R.drawable.image); // Image is .png format 

    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
     WindowManager.LayoutParams.WRAP_CONTENT, 
     WindowManager.LayoutParams.WRAP_CONTENT, 
     WindowManager.LayoutParams.TYPE_PHONE, 
     WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
     PixelFormat.TRANSLUCENT); 

     params.gravity = Gravity.CENTER | Gravity.CENTER; 
     params.x = 0; 
     params.y = 0; 

     windowManager.addView(img, params); 
} 

हालांकि, किसी भी अंतरिक्ष जो छवि अछूत में शामिल हैं:

इस भाग कोड जो पूरे स्क्रीन के शीर्ष पर एक छवि ओवरले करेगा है। मैं छवि बस, ढक करने के लिए स्क्रीन पर किसी भी अन्य घटकों को प्रभावित किए बिना चाहते हैं, के लिए इसी तरह यह क्या करता है:

CPU usage overlay example

मैं छवि स्पर्श (स्पर्श के माध्यम से) नीचे क्षेत्र कैसे बना सकते हैं?

संपादित
ऐसा नहीं है कि छवि के पारदर्शी अंतरिक्ष एक वर्ग भरता है लगता है, और स्क्रीन (FYI) को शामिल किया गया। तो मेरा अंतिम लक्ष्य छवि टच-थ्रू बनाने के लिए है।

मैंने कुछ SO उपयोगकर्ताओं द्वारा अनुशंसित popupWindow कक्षा की कोशिश की है, लेकिन इसका उद्देश्य मेरी आवश्यकताओं को पूरा नहीं करता है और काम नहीं करता है।

+0

आप # 99000000 जैसे पृष्ठभूमि रंग के साथ छविव्यू के नीचे एक रिलेवेटिवआउट का उपयोग कर सकते हैं, अल्फा रंग के लिए महत्वपूर्ण भाग "# 99" या पारदर्शी रंग का उपयोग करें और रिलेटिव लेआउट – Aspicas

+0

पर क्लिक करें पर क्लिक करें यदि यह टच लिस्टनर में 'वापसी झूठी' जोड़ता है तो यह काम करता है एक छविदृश्य के, तो स्पर्श घटना इसके बजाय रिश्तेदार लेआउट में पारित किया जा सकता है? –

+0

टच लिस्टनर पर 'वापसी झूठी' सेट करना काम नहीं किया। ऐसा लगता है कि छवि समस्या पैदा कर रही है: रिक्त स्थान। खाली जगह को हटाने का कोई तरीका है? – jyoon

उत्तर

1

मुझे पता चला कि WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY इस मुद्दे को हल करता है।

0

को परम झंडे सेट करने का प्रयास का प्रयास करें:

WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | 
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | 
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH 

मैंने पहले सफलता के साथ इस कोशिश की है। अंतिम दो इसके पीछे के विचारों को स्पर्श घटनाओं को भेजने में मदद करेंगे।

+0

क्षमा करें, यह काम नहीं किया। – jyoon

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