2012-03-06 3 views
2

좋아요, 이제 탭이 달린 안드로이드 앱을 만들고 있습니다. 내 문제는 탭 위젯이 다른 Android 버전이나 기기에 걸쳐 균일하지 않다는 것입니다. 맞춤 탭 위젯 Android 탭 표시기

<?xml version="1.0" encoding="UTF-8"?> 

<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/tabhost" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 

> 

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

    <TabWidget 
     android:id="@android:id/tabs" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     /> 
    <FrameLayout 
     android:id="@android:id/tabcontent" 
     android:background="@drawable/gradient_bg" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"/> 
</LinearLayout> 

내가 좋아하는 새로운 지표 XML을 만든 : 나는이 나는 또한 내 XML 레이아웃을 내 탭 활동

import android.app.TabActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.TabHost; 
import android.widget.TabHost.TabSpec; 

public class Cook extends TabActivity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.cook_layout); 

    TabHost tabHost = getTabHost(); 

    // Tab for Snacks 
    TabSpec snackspec = tabHost.newTabSpec("Snacks"); 
    // setting Title and Icon for the Tab 
    snackspec.setIndicator("Snacks", getResources().getDrawable(R.drawable.cook_icon_tab_snacks)); 
    Intent snacksIntent = new Intent(this, Cook_tab_snacks.class); 
    snackspec.setContent(snacksIntent); 



    // Tab for Mains 
    TabSpec mainspec = tabHost.newTabSpec("Mains"); 
    mainspec.setIndicator("Mains", getResources().getDrawable(R.drawable.cook_icon_tab_snacks)); 
    Intent mainsIntent = new Intent(this, Cook_tab_mains.class); 
    mainspec.setContent(mainsIntent); 

    // Tab for Desserts 
    TabSpec dessertspec = tabHost.newTabSpec("Desserts"); 
    dessertspec.setIndicator("Desserts", getResources().getDrawable(R.drawable.cook_icon_tab_snacks)); 
    Intent dessertsIntent = new Intent(this, Cook_tab_desserts.class); 
    dessertspec.setContent(dessertsIntent); 


    // Adding all TabSpec to TabHost 
    tabHost.addTab(snackspec); // Adding snacks tab 
    tabHost.addTab(mainspec); // Adding mains tab 
    tabHost.addTab(dessertspec); // Adding desserts tab 
} 

} 

입니다 그것은 어떤 안드로이드에 동일하게 만들고 싶어 주요 안드로이드 탭 표시기 v4 나는 블로그를 많이 따라 검색, 내 대답을 찾을 수 없습니다 ... 나는 모든 안드로이드 버전에 걸쳐 균일 한 안드로이드 탭을 만들고 오렌지와 옐로우 이후 좋은 색상을 만들기 위해 내 응용 프로그램의 색상 테마에 맞음 도와주세요 !!!! 나는 그것을 해결할 수있는 방법을 찾지 못하는 것 같습니다 ... 건배

답변

2

괜찮습니다. 해결책을 찾았습니다.

import android.app.TabActivity; 
import android.content.Intent; 
import android.graphics.drawable.Drawable; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.LinearLayout.LayoutParams; 
import android.widget.TabHost; 
import android.widget.TabHost.TabSpec; 

public class Cook extends TabActivity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.cook_layout); 

    TabHost tabHost = getTabHost(); 

    // Tab for Snacks 
    TabSpec snackspec = tabHost.newTabSpec("Snacks"); 
    // setting Title and Icon for the Tab 
    snackspec.setIndicator(makeTabIndicator(getResources().getDrawable(R.drawable.cook_icon_tab_snacks))); 
    Intent snacksIntent = new Intent(this, Cook_tab_snacks.class); 
    snackspec.setContent(snacksIntent); 



    // Tab for Mains 
    TabSpec mainspec = tabHost.newTabSpec("Mains"); 
    mainspec.setIndicator(makeTabIndicator(getResources().getDrawable(R.drawable.cook_icon_tab_snacks))); 
    Intent mainsIntent = new Intent(this, Cook_tab_mains.class); 
    mainspec.setContent(mainsIntent); 

    // Tab for Desserts 
    TabSpec dessertspec = tabHost.newTabSpec("Desserts"); 
    dessertspec.setIndicator(makeTabIndicator(getResources().getDrawable(R.drawable.cook_icon_tab_snacks))); 
    Intent dessertsIntent = new Intent(this, Cook_tab_desserts.class); 
    dessertspec.setContent(dessertsIntent); 


    // Adding all TabSpec to TabHost 
    tabHost.addTab(snackspec); // Adding snacks tab 
    tabHost.addTab(mainspec); // Adding mains tab 
    tabHost.addTab(dessertspec); // Adding desserts tab 
} 


//making the tab view: 
private View makeTabIndicator(Drawable drawable){ 
ImageView Tabimage = new ImageView(this); 
LayoutParams LP = new   LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT,1); 
LP.setMargins(1, 0, 1, 0); 
Tabimage.setLayoutParams(LP); 
Tabimage.setImageDrawable(drawable); 
Tabimage.setBackgroundResource(R.drawable.tabview); 
return Tabimage; 


}} 

내가 날씨를 잘 모릅니다 여부를 내가 지금 난 그냥 모든 작업을 그것을 싶어 ... 내가 그것을 제거하거나 나중에 떠날 수 있다면 내가 볼 수 있습니다 더 이상 cook_layout이 필요합니다 여기 코드입니다 그리고 나중에 나는 청결한을 위해 회람 할 것이다 이 질문에 비틀 거림 당신이 거기 밖으로 돕는 희망! 건배