如何缩小标签?

时间:2011-08-30 21:37:10

标签: android tabs

我正在使用标签小部件来模拟iphone中的菜单。这是我的屏幕enter image description here

的图片

正如您所看到的那些单词不适合单个框。如何为每个小部件缩小文本大小?还有一种方法可以缩小标签内的图片,使它们看起来不那么紧凑吗?到目前为止,这些图标都“适合大小”,所以它试图占用尽可能多的空间。

感谢您的帮助,请参阅下面的标签上的代码

@Override
public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    setContentView(R.layout.tab_layout);
    Resources res = getResources(); // Resource object to get Drawables
    TabHost tabHost = getTabHost(); // The activity TabHost
    TabHost.TabSpec spec; // Resusable TabSpec for each tab
    Intent intent; // Reusable Intent for each tab

    intent = new Intent().setClass(this, ImTracking.class);
    spec = tabHost
            .newTabSpec("imtracking")
            .setIndicator("I\'m Tracking",
                    res.getDrawable(R.drawable.mapbutton))
            .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, TrackingMe.class);
    spec = tabHost
            .newTabSpec("trackingme")
            .setIndicator("Tracking Me",
                    res.getDrawable(R.drawable.friends)).setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, Settings.class);
    spec = tabHost
            .newTabSpec("settings")
            .setIndicator("Settings",
                    res.getDrawable(R.drawable.settingsicon))
            .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, Review.class);
    spec = tabHost.newTabSpec("review")
            .setIndicator("Review", res.getDrawable(R.drawable.like))
            .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, help.class);
    spec = tabHost.newTabSpec("help")
            .setIndicator("Help", res.getDrawable(R.drawable.help))
            .setContent(intent);
    tabHost.addTab(spec);
    tabHost.setCurrentTab(0);

EDIT 这是xml tab_layout.xml

<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"
        android:padding="0dp">

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="0dp"
            android:layout_weight="1"/>

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"/>

    </LinearLayout>

</TabHost>

tab.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center"
android:orientation="vertical" android:padding="0dp">
<ImageView android:id="@+id/tab_icon" android:layout_width="30dp"
    android:layout_height="30dp" android:scaleType="fitCenter" />
<TextView android:id="@+id/tab_text" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:singleLine="true"
    android:textStyle="bold" android:gravity="center_horizontal"
    android:textSize="10sp" android:padding="3dip" android:ellipsize="marquee"
     />
</LinearLayout>

1 个答案:

答案 0 :(得分:3)

你可以使用TabWidget的这个实现,它的自定义标签!您可以轻松编辑与这些自定义选项卡关联的布局和视图。

警告,选中/未选中时,这些标签不会使用系统背景作为标签颜色,并使用您在下图中看到的灰色外观。

http://code.google.com/p/android-custom-tabs/

Android custom tabs