2010-12-22 11 views
27

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

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

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

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

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

+1

@ सुचिसिता उत्तर मूल पोस्टर द्वारा स्वीकार किया जाता है। इस बक्षीस का उद्देश्य क्या है? अधिक जानकारी के लिए – Ronnie

उत्तर

44

आपके द्वारा चयनित और इसे नहीं चुना जाता राज्यों के लिए अलग छवियों का उपयोग करने, तो प्रत्येक टैब, उदा 'चयनकर्ता' अपने ड्रॉएबल फ़ोल्डर में XML फ़ाइलें बना चाहते हैं 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 पद्धति का उपयोग करके भरत के रूप में लिखा है इसके बाद के संस्करण आप का उल्लेख होना चाहिए अपने नए एक्सएमएल drawable संसाधन।

10

पाठ & आइकन हम 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)); 

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

+0

http://www.androidpeople.com/android-tabhost-tutorial-part-2/ – bharath

+0

मैं टेक्स्ट और आइकन का उपयोग नहीं करना चाहता, मैं चयनित टैब पर छवियों को बदलना चाहता हूं और चयनित रूप नहीं । –

2

this टैबलेआउट ट्यूटोरियल में, टैब का चयन होने पर और चयनित नहीं होने पर विभिन्न छवियों का उपयोग किया जाता है।

मूल रूप से आपको Statelist ड्रायबल बनाना होगा। यहाँ डेवलपर साइट

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

इसके अलावा setIndicator (CharSequence, Drawable) टैब के लिए पाठ और चिह्न सेट करने के लिए कहा जाता है से उसी के लिए कोड है।

16

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

मेरे उदाहरण में मैं, एक 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 आप drawable फ़ोल्डर में बनाया।

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

+1

एक और पूरा जवाब। धन्यवाद :) – Sufian

+0

बेस्ट और एनईसी स्पष्टीकरण .. :) –

1

आप ImageButton उपयोग करने के लिए है, क्योंकि एक imageView चयनित किया जा सकता है और नहीं का चयन किया और ImageButton चयनित और नहीं चुना जा सकता है और दबाया दूसरों यह बेहतर है यह कर सकते हैं ....

2

इस कोड टैब में एक आइकन सेट करने का तरीका बताते हैं मेजबान और इरादा

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 
0

@ सुचिस्मिता बेहतर टैबएक्टिविटी के बजाय टेक्स्टव्यू का उपयोग करें। मैं tabactivity

  • मैं एक ही टैब के अंदर एक और गतिविधि प्रारंभ नहीं हो सका में इन निम्न समस्याओं का सामना करना पड़ा, इस बड़ी समस्या मैं का सामना करना पड़ा

  • अगले टैब को देखते अनुरूपण है, मैं विभक्त drawable परिवर्तन नहीं कर सकता है।

  • और TabActivity आईसीएस में

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

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

6

एक चयनकर्ता xml फ़ाइल tabicon.xml इस कोड

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

अब अपनी TabActivity के लिए जाने के लिए इस कोड

TabSpec MyTab = tabhost.newTabSpec("MyTab"); 
MyTab.setIndicator("", getResources().getDrawable(R.drawable.tabicon)); 
//note:if you give some text in setIndicator sometimes the icon will not be showed. 
Intent tabIntent = new Intent(this, TabOne.class); 
TWTTab.setContent(tabIntent); 
0

बनाएँ और रख दिया और डाल आप प्रोग्राम तो टैब की छवि बदलना चाहते हैं:

ImageView yourImage= (ImageView)mTabHost.getTabWidget().getChildTabViewAt(youtTabPosition).findViewById(android.R.id.icon); 
yourImage.setImageResource(R.drawable.ic_more_vert_white_24dp); 
संबंधित मुद्दे