如何在Android 2.1 +中实现圆形标签

时间:2010-07-17 15:49:06

标签: java android

任何人都可以帮我实现使用android 2.1 +的TabWidget的圆角。我基本上试图通过xml配置给TabWidget一个自定义主题。我尝试了以下内容,但只有文本颜色发生了变化。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="Tab_ForeColor">#6095C1</color>
    <color name="Tab_BackgroundColor">#411485</color>

    <style name="TestTheme" parent="android:Theme.Black">
        <item name="android:tabWidgetStyle">@style/TestTab</item>
    </style>

    <style name="TestTab" parent="@android:style/Widget.TabWidget">
        <item name="android:textAppearance">@style/TestTextApperance</item>
        <item name="android:drawable">
            <drawable name="rounded_tab">
                <shape xmlns:android="http://schemas.android.com/apk/res/android"
                    android:shape="rectangle">
                    <stroke android:width="3dip" android:color="@android:color/white" />
                    <solid android:color="@android:color/white" />
                    <corners android:bottomRightRadius="0.1dip"
                        android:bottomLeftRadius="0.1dip" android:topLeftRadius="15dip"
                        android:topRightRadius="15dip" />
                </shape>
            </drawable>
        </item>
    </style>

    <style name="TestTextApperance">
        <item name="android:textSize">14dp</item>
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">@color/Tab_ForeColor</item>
    </style>
</resources>

TIA

安德鲁

1 个答案:

答案 0 :(得分:4)

一个解决方案是在标签上设置一个带圆角的图像,我知道,这是一种俗气的解决方案,但有效。

tab = tabs.newTabSpec("tab_Busquedas");
tab.setContent(new Intent().setClassName("com.grapp", "com.grapp.homes").putExtras(bundle));
tab.setIndicator(null,null);
tabs.addTab(tab);
//here you set the image with rounded corners over the tab.
tabs.getTabWidget().getChildAt(0).setBackgroundResource(R.drawable.mytab_roundedcorners);

R.drawable.mytab_roundedcorners将是一个选择器。