2012-06-16 217 views
1

我的這兩個選項卡都有這些代碼。我想改變顏色,但我不知道如何去做。應該在我的java文件中完成,還是在我的xml中完成?謝謝更改Android中的選項卡顏色

這裏是我的代碼

import android.app.Activity; 
import android.app.TabActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Window; 
import android.widget.TabHost; 

// This is now the first activity that you see when you enter the app, it derives from  TabActivity 
public class TabsActivity extends TabActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 



    // The activity displays a TabHost layout with a TabWidget below the actual tab contents 
    setContentView(R.layout.tabs); 

    // Two tabs are added one displays the main list activity, the other an  info activity 
    addNewTab("Kalender", MainActivity.class); 
    addNewTab("Info", InfoActivity.class); 
} 


// This function defines and adds a tab to the interface 
private void addNewTab(String name, Class<? extends Activity> activityClass) 
{ 
    TabHost tabHost = getTabHost(); 

    // The new tab will display a separate activity, so it needs an intent for it 
    Intent activityIntent = new Intent().setClass(this, activityClass); 

    // The TabSpec sets the internal name and the visible name of the newly created tab 
    TabHost.TabSpec spec =  tabHost.newTabSpec(name).setIndicator(name).setContent(activityIntent); 

    // Finally, the new tab is added to the TabHost 
    tabHost.addTab(spec); 
} 
} 

回答

2

更改文本顏色和TAB的背景顏色

for(int i=0;i<tabHost.getTabWidget().getChildCount();i++) 
    { 

     tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.WHITE); //Changing background color of tab 

     TextView tv = (TextView) tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title); /*for Selected Tab changing text color*/ 
     tv.setTextColor(Color.BLACK); 
    } 
+1

非常感謝 – Chrfugl

0

如果您想自定義標籤的外觀,你應該使用自己的標籤控件。事情是,大多數的Android小部件是使用位圖主題,所以你不能簡單地改變漸變顏色。

有人建議簡單地更改標準小部件的backgroundColor,但它看起來相當平坦。

使用自己的小部件去something like this

// Initialize a TabSpec for each tab and add it to the TabHost 
spec = tabHost.newTabSpec("artists").setIndicator("Artists", 
        res.getDrawable(R.drawable.ic_tab_artists)) 
       .setContent(intent); 
tabHost.addTab(spec); 

也看看the Android style guide's tab section

0

這是一種讓背景單色標籤的一種顏色,也可以設置一種。

tabHost.getTabWidget().getChildAt(tabIndex).setBackgroundColor(color); 
+0

我應該在哪裏插入這條線? – Chrfugl

+0

@Chrfugl - 您的選擇。你的'addNewTab'結尾是很自然的。 –

+0

好的,謝謝。最後一個問題。設置顏色只會是(#000000)等等。 – Chrfugl

相關問題