0

我想创建这种类型的自定义选项卡并在我的应用程序中实现..我想知道如何做到这一点..如果您有任何链接,请分享我...提前致谢..在此处输入图像描述

4

2 回答 2

1

我在两个月前得到了同样的要求....我搜索了很多例子,但我找不到正确的解决方案。

实际上我为标签设计了两种类型的图像......相同的图像但两种不同的分辨率

最后我设计了如下的xml ......工作正常

<RelativeLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"    
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
>
<TabHost 
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">

    <FrameLayout android:id="@android:id/tabcontent"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_weight="1">
    </FrameLayout>
     <TabWidget android:id="@android:id/tabs"
        android:layout_width="fill_parent" android:layout_height="55dp" 

          />
</LinearLayout>
</TabHost>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
>
<ImageView 
android:id="@+id/tab1"    
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible"
android:background="@drawable/tab_mybars_on"
/>   
<ImageView 
android:id="@+id/tab2"    
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible"
android:background="@drawable/tab_mybeers_on"
/>    
<ImageView
android:id="@+id/tab3" 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible"
android:background="@drawable/tab_events_on"
/>    
<ImageView 
android:id="@+id/tab4"    
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible"
android:background="@drawable/tab_coupons_on"
/>    
<ImageView 
android:id="@+id/tab5"    
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible"
android:background="@drawable/tab_brewedlife_on"
 />     
</LinearLayout>

</RelativeLayout>

最后是标签活动的代码:

public class DownTabActivity extends TabActivity implements OnClickListener
{   
public static TabHost host;
TabSpec spec;
static  int loadingcheck=0;
public static String tabTag;
ImageView tab[]=new ImageView[5];

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tab);

    spec= null;
    host= getTabHost();
    host.setFocusable(false);
 //     host.getTabWidget().setDividerDrawable(R.drawable.tabbar_divider);

    host.addTab(createTab("My Bars","MyBars",R.drawable.tab_mybars,MyBarsTabActivity.class));

    host.addTab(createTab("My Beers","MyBeers",R.drawable.tab_mybeers, MyBeersTabActivity.class));

    host.addTab(createTab("Events","Events",R.drawable.tab_myevents, MyEventsTabActivity.class));

    host.addTab(createTab("Coupons","Coupons",R.drawable.tab_coupons, CouponsTabActivity.class));

    host.addTab(createTab("Brewed Life","BrewedLife",R.drawable.tab_brewedlife, BrewedLifeTabActivity.class));

    host.setOnClickListener(this);

    tab[0]=(ImageView)findViewById(R.id.tab1);
    tab[1]=(ImageView)findViewById(R.id.tab2);
    tab[2]=(ImageView)findViewById(R.id.tab3);
    tab[3]=(ImageView)findViewById(R.id.tab4);
    tab[4]=(ImageView)findViewById(R.id.tab5);      

    tabTag = host.getCurrentTabTag(); 
    Log.e("tab",tabTag);

    tab[host.getCurrentTab()].setVisibility(View.VISIBLE);


    host.setOnTabChangedListener(new TabHost.OnTabChangeListener()
    {
        public void onTabChanged(String arg0)
        {
            Log.e("tab argument is", arg0);

            for(int i=0;i<5;i++){
            if(i==host.getCurrentTab()) tab[i].setVisibility(View.VISIBLE);
            else tab[i].setVisibility(View.INVISIBLE);
            }
        }    
    });


}

private TabSpec createTab(final String title, final String tag,final int drawable,final Class<?> intentClass)
{
    final Intent intent = new Intent().setClass(this, intentClass);

    final View tab = LayoutInflater.from(getTabHost().getContext()).inflate(R.layout.tab_indicator, null);
    ((TextView)tab.findViewById(R.id.tab_text)).setText("");

    ((ImageView)tab.findViewById(R.id.tab_icon)).setBackgroundResource(drawable);
    return getTabHost().newTabSpec(tag).setIndicator(tab).setContent(intent);
}

public void onClick(View v) 
{
    Log.v("on click Down tab", "on click Down tab");
}
}
于 2013-02-14T13:21:37.130 回答
0

http://jqueryui.com/tabs/

可能这会有所帮助。或者您也可以为自己创建一个自定义选项卡控件

于 2013-02-14T13:15:23.313 回答