代码之家  ›  专栏  ›  技术社区  ›  REA_ANDREW

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

  •  1
  • REA_ANDREW  · 技术社区  · 15 年前

    有人能帮我用Android2.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>
    

    蒂亚

    安得烈

    1 回复  |  直到 15 年前
        1
  •  4
  •   Jorgesys    15 年前

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

    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将是一个选择器。