Android:标签上的文字和颜色,标签布局

时间:2011-10-16 08:23:54

标签: android android-layout

我正在使用Tab Layout,我想做两件事:

  1. 设置颜色,使其不会显示为灰色
  2. 缩小文字大小,文字不合适。
  3. 另外,文字大部分都在图标上而不是图标下面(我可以对它做些什么吗?)。

    关于如何做到这一点的任何想法?

    编辑:我正在以这种方式创建新标签:

    spec = tabHost.newTabSpec("artists").setIndicator(
        "Artists",
        res.getDrawable(R.drawable.ic_tab_artists)
    ).setContent(intent);
    tabHost.addTab(spec);
    

    我想更改“艺术家”这个词的大小。

2 个答案:

答案 0 :(得分:5)

您应该定义自己的视图。

tabHost.newTabSpec("tab1")
                .setIndicator(prepareTabView(this, "title"))
                .setContent(intent);

你可以在这里更改文字大小 tv.setTextSize(20)“

public static View prepareTabView(Context context, String text) {
        View view = LayoutInflater.from(context).inflate(
                R.layout.tab_indicator, null);
        TextView tv = (TextView) view.findViewById(R.id.tabIndicatorTextView);
        tv.setText(text);

        return view;
    }

tab_indicator.xml。你也可以在这里改变文字大小 android:textSize =“20dip”。可以在此处设置背景颜色。的机器人:背景= “@颜色/ back_color_selector_tab”

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fakeNativeTabLayout" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:gravity="center"
    android:orientation="vertical" android:background="@color/back_color_selector_tab">
    <!-- You can even define an Icon here (dont forget to set a custom icon 
        in your code for each Tab): <ImageView android:id="@+id/fakeNativeTabImageView" 
        android:layout_width="wrap_content" android:layout_height="wrap_content" 
        android:src="@drawable/icon" /> -->
    <TextView android:id="@+id/tabIndicatorTextView"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:text="Tab" android:ellipsize="marquee" />

</LinearLayout>

back_color_selector_tab.xml是一个xml,用于自动更改不同状态下的背景颜色。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/state_orange" />
    <item android:state_selected="true" android:drawable="@drawable/background05" /> <!-- focused -->
    <item android:drawable="@drawable/background04" /> <!-- default -->
</selector>

state_orange.xml

的示例
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/orange" />
</shape>

答案 1 :(得分:0)

对于选项A:

for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
    {
        tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#8A4117"));
    }
       tabHost.getTabWidget().setCurrentTab(1);
       tabHost.getTabWidget().getChildAt(1).setBackgroundColor(Color.parseColor("#C35817"));