android - TabHost में टैब छवियों को कैसे बदलें




android-tabhost android-image (6)

@ सुचिस्मिता बेहतर है कि आप TabActivity के बजाय TextView का उपयोग करें। मुझे सारणीयता में निम्नलिखित समस्याओं का सामना करना पड़ा

  • मैं एक ही टैब के भीतर एक और गतिविधि शुरू नहीं कर सका, यह मुझे बड़ी समस्या का सामना करना पड़ा

  • अगला टैब के दृश्य को अनुकूलित कर रहा है, मैं विभाजक को खींचने योग्य नहीं बदल सका।

  • और आईसीएस में टैबएक्टिविटी को हटा दिया गया है

टेक्स्टव्यू का उपयोग करके मैंने घटनाओं और गतिविधि प्रवाह को संभालने में बहुत आसान पाया, यहां आपके आवेदन के व्यवहार पर पूर्ण नियंत्रण है और आप टैब के स्वरूप और अनुभव को अनुकूलित भी कर सकते हैं, हालांकि आप चाहते हैं।

क्या आप इसे कार्यान्वित करने में रुचि रखते हैं?

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

जब मैं किसी भी टैब का चयन करता हूं तो छवि थोड़ा उज्ज्वल होती है और जब मैं एक और टैब पर जाता हूं तो उज्ज्वल छवि ग्रे छायांकित हो जाती है।

मैंने TabHost लागू किया है लेकिन मुझे नहीं पता कि TabHost में छवियों को कैसे बदला जाए।

क्या कोई इस में मेरी मदद कर सकता है।

धन्यवाद, डेविड


आप ImageButton का उपयोग करना बेहतर कर सकते हैं क्योंकि एक छवि दृश्य का चयन किया जा सकता है और चयनित नहीं किया गया है और छविबटन का चयन नहीं किया जा सकता है और दबाया जा सकता है और अन्य ....


टेक्स्ट और आइकन सेट करने के लिए हमें setIndicator प्रॉपर्टी का उपयोग करने की आवश्यकता है।

 tabSpec.setIndicator(Char,Drawable);
 firstTabSpec.setIndicator("First Tab Name", getResources().getDrawable(R.drawable.logo));
 secondTabSpec.setIndicator("Second Tab Name",getResources().getDrawable(R.drawable.logo));

प्रत्येक टैब के लिए पृथक छवि सेट करने के लिए इसका उपयोग करें


यदि आप चयनित और अचयनित राज्यों के लिए अलग-अलग छवियों का उपयोग करना चाहते हैं, तो प्रत्येक टैब के लिए अपने ड्रॉबल्स फ़ोल्डर में 'चयनकर्ता' एक्सएमएल फाइलें बनाएं, उदाहरण के लिए tab1_selector.xml, tab2_selector.xml जिसमें निम्नलिखित शामिल होना चाहिए, अपनी छवियों को खींचने योग्य संदर्भों को प्रतिस्थापित करना चयनित और अचयनित राज्यों के लिए। अर्थात

    <?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:state_selected="true"
    android:drawable="@drawable/tab1_selected_image" />
  <item
    android:state_selected="false"
    android:drawable="@drawable/tab2_unselected_image" />
</selector>

फिर ऊपर लिखने के रूप में .setIndicator विधि का उपयोग करके आपको अपने नए एक्सएमएल ड्रॉबल संसाधन का संदर्भ देना चाहिए।


यह कोड दिखाते हैं कि टैब होस्ट में आइकन कैसे सेट करें और इरादा भी सेट करें

  TabHost tabHost = getTabHost();

        // Tab for Photos
        TabSpec photospec = tabHost.newTabSpec("Photos");
        // setting Title and Icon for the Tab
        photospec.setIndicator("", getApplicationContext().getResources().getDrawable(R.drawable.icon_photos_tab));
        Intent photosIntent = new Intent(this, PhotosActivity.class);
        photospec.setContent(photosIntent);

        // Tab for Songs
        TabSpec songspec = tabHost.newTabSpec("Songs");
        songspec.setIndicator("", getApplicationContext().getResources().getDrawable(R.drawable.icon_songs_tab));
        Intent songsIntent = new Intent(this, SongsActivity.class);
        songspec.setContent(songsIntent);


        // Tab for Videos
        TabSpec videospec = tabHost.newTabSpec("Videos");
        videospec.setIndicator("", getApplicationContext().getResources().getDrawable(R.drawable.icon_videos_tab));
        Intent videosIntent = new Intent(this, VideosActivity.class);
        videospec.setContent(videosIntent);

        // Adding all TabSpec to TabHost
        tabHost.addTab(photospec); // Adding photos tab
        tabHost.addTab(songspec); // Adding songs tab
        tabHost.addTab(videospec); // Adding videos tab

सबसे पहले आपके पास दो छवियां होनी चाहिए, क्योंकि आप एक से दूसरे में बदलना चाहते हैं, इसलिए आपको दोनों छवियों की आवश्यकता है, और आपको इसे तीन ड्रॉइंग फ़ोल्डर्स पर रखना होगा।

मेरे उदाहरण में मेरे पास छवियां हैं, जिन्हें icon1.png और icon2.png कहा जाता है।

इसके बाद, ड्रॉबल फ़ोल्डरों के अंदर एक एक्सएमएल फ़ाइल बनाएं (सभी ड्रॉइंग फ़ोल्डर्स के लिए एक ही फाइल)। यह फाइल है:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use icon1 -->
<item android:drawable="@drawable/icon1"
      android:state_selected="true" />
<!-- When not selected, use icon2-->
<item android:drawable="@drawable/icon2" />
</selector>

आप चुन सकते हैं कि कौन सी छवि टैब है जब टैब का चयन किया जाएगा। इस मामले में, आइकन 1 दिखाई देगा, क्योंकि हमने इसे टैग पर घोषित किया है जहां state_selected = true है

तो अब, आपके पास तीन चित्रकारी फ़ोल्डरों के अंदर दो छवियां और xml फ़ाइल है। ठीक!

अब, कक्षा में आप टैब घोषित करते हैं, प्रत्येक टैब के लिए यह लाइन जोड़ें जिसे आप जोड़ना चाहते हैं।

tabHost.addTab(tabHost
.newTabSpec("one")
.setIndicator("The Tab",
  res.getDrawable(R.drawable.yourxmlfile))
.setContent(new Intent(this, YourClass.class)));

याद रखें कि R.drawable.yourxmlfile आपके द्वारा खींचे गए फ़ोल्डर में बनाई गई XML फ़ाइल में correponds।

बस! उम्मीद है कि यह आपकी मदद करता है।







android-image