2012-04-22 16 views
6

मैं view.gone द्वारा admob adview छिपाने:एडमोब एडव्यू को कैसे छुपाएं/अक्षम करें?

//adView.setClickable(false); 
//adView.clearFocus(); 
//adView.setEnabled(false); 
//adView.setFilterTouchesWhenObscured(true); 
//adView.setFocusable(false); 
//adView.setFocusableInTouchMode(false); 
adView.setVisibility(View.GONE); 
adView.startAnimation(animation); 

यह विज्ञापन इस बात को छुपाता है, लेकिन adview ही अभी भी स्पर्श करने योग्य है, इसलिए यदि मैं adview के अंतरिक्ष स्पर्श, यह अभी भी ब्राउज़र को खोलता है और विज्ञापन के लिए मुझे पुनर्निर्देश , हालांकि विज्ञापन स्वयं दिखाई नहीं दे रहा है।

स्पर्श ईवेंट को भी अक्षम कैसे करें? मैंने उपर्युक्त सभी पंक्तियों का प्रयास किया है लेकिन उनमें से कोई भी काम नहीं करता है।

कोई सलाह?

उत्तर

4

setOnTouchListener का उपयोग करने का प्रयास करें और जैसा चाहें टच ओवरराइड करें। इसके अलावा आप removeView():

LinearLayout linLay = (LinearLayout)findViewById(R.id.ad_layout); 
linLay.removeView(adView); 
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); 
linLay.addView(adView, params); 

और आवश्यकता होने पर इसे वापस जोड़ सकते हैं।

+0

दृश्य को हटाने और जोड़ने के बारे में नहीं सोचा था। धन्यवाद। – Tamas

5

adView.setVisibility(View.GONE) सेट करना और दृश्य पदानुक्रम से AdMob दृश्य को हटाने से विज्ञापन छिपाएगा और अधिकांश मामलों में उपयोगकर्ता इंटरैक्शन को रोका जाएगा।

विज्ञापन प्रदर्शित करने वाली गतिविधि समाप्त होने (नष्ट) होने पर AdView जीवन चक्र को समाप्त करना न भूलें। AdMob SDK को जावाडोक से:

सार्वजनिक शून्य को नष्ट()

adview नष्ट कर देता है। इस विधि को कॉल करने के बाद AdView का उपयोग नहीं किया जाना चाहिए।

गतिविधि के onDestroy() कॉलबैक में destroy() करने के लिए एक कॉल करें:

@Override 
public void onDestroy() { 
    if (adView != null) { 
     adView.destroy(); 
    } 
super.onDestroy(); 
} 
+0

विज्ञापन दृश्य में AdView टाइप किया गया है। सरल दृश्य में कोई नष्ट नहीं है() मेथोड। – Mark

+0

@ मार्क 'एडव्यू' की अपनी परिभाषित 'नष्ट()' विधि है। – Vektor88

+1

@mjama क्या मुझे .destroy() भी कॉल करना चाहिए यदि मैंने XML के माध्यम से AdView बनाया है? मार्गदर्शिका में ऐसा लगता है कि मुझे नष्ट करने की आवश्यकता नहीं है: https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals?hl=it#play – Accollativo

0
final com.google.ads.AdView ad = (AdView) findViewById(R.id.rect_ad); 
    if (ad != null) { 
      ad.stopLoading(); 
      ad.destroy(); 
      getWindowManager().removeView(ad); 
    } 

भी इस कोड को नष्ट नहीं करता AdMob = ((( मैं इसे हैंडलर और WebView स्मृति में पकड़े है है मेरी गतिविधि

+0

कोई कामकाज पर भरोसा नहीं करना है AdView का एक्सएमएल संस्करण, लेकिन प्रोग्राम को प्रोग्रामेटिक रूप से बनाएं और इसे एक कंटेनर जोड़ें। इस तरह आप एप्लिकेशन संदर्भ का उपयोग कर सकते हैं। यदि आप XML संस्करण का उपयोग करते हैं तो यह गतिविधि संदर्भ का उपयोग करेगा जो स्मृति रिसाव के लिए प्रवण होगा। (मैंने हाल ही में यह भी खोजा है) –