Android 在FragmentTabHost中设置非矩形图像背景

Android 在FragmentTabHost中设置非矩形图像背景,android,fragment-tab-host,Android,Fragment Tab Host,我需要在我的FragmentTabHost背景图像中设置非矩形或方形图像,如下所示: 但是我得到了这个:(标签之间的默认分隔符是剪切我的图像):(请帮助 我有这些对角线形状的图片,我想把它们设置为我个人标签中的背景图片。这就是我到目前为止所做的 tab_layout.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" a

我需要在我的FragmentTabHost背景图像中设置非矩形或方形图像,如下所示:

但是我得到了这个:(标签之间的默认分隔符是剪切我的图像):(请帮助

我有这些对角线形状的图片,我想把它们设置为我个人标签中的背景图片。这就是我到目前为止所做的

tab_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>

<ImageView 
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_gravity="center_horizontal" />

</LinearLayout>

MainActivity.java
public class MainActivity extends ActionBarActivity {
private FragmentTabHost mTabHost;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    mTabHost = (FragmentTabHost) findViewById(R.id.tabhost);
    mTabHost.setup(this, getSupportFragmentManager(), R.id.tabFrameLayout);

    mTabHost.addTab(
            mTabHost.newTabSpec("tab1").setIndicator(getTabIndicator(mTabHost.getContext(),  R.drawable.tab1)),
            FragmentTab.class, null);
    mTabHost.addTab(
            mTabHost.newTabSpec("tab2").setIndicator(getTabIndicator(mTabHost.getContext(),  R.drawable.tab2)),
            FragmentTab.class, null);

}

private View getTabIndicator(Context context, int icon) {
    View view = LayoutInflater.from(context).inflate(R.layout.tab_layout, null);
    ImageView iv = (ImageView) view.findViewById(R.id.imageView);
    iv.setImageResource(icon);
    return view;
}
}
tab_layout.xml
MainActivity.java
公共类MainActivity扩展了ActionBarActivity{
私有碎片选项卡主机mTabHost;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTabHost=(FragmentTabHost)findViewById(R.id.tabhost);
mTabHost.setup(这个,getSupportFragmentManager(),R.id.tabFrameLayout);
mTabHost.addTab(
mTabHost.newTabSpec(“tab1”).setIndicator(getTabIndicator(mTabHost.getContext(),R.drawable.tab1)),
FragmentTab.class,空);
mTabHost.addTab(
mTabHost.newTabSpec(“tab2”).setIndicator(getTabIndicator(mTabHost.getContext(),R.drawable.tab2)),
FragmentTab.class,空);
}
私有视图getTabIndicator(上下文,int图标){
视图=布局更平坦。从(上下文)。充气(R.layout.tab\u布局,空);
ImageView iv=(ImageView)view.findViewById(R.id.ImageView);
iv.setImageResource(图标);
返回视图;
}
}

您可以使用TabWidget并通过设置分隔器颜色使分隔器透明

android:divider="@color/transparent"
您的TabHost xml可以是这样的-

<android.support.v4.app.FragmentTabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@color/card_background" />

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:paddingTop="@dimen/padding_small"
            android:divider="@color/transparent"
            android:background="@drawable/footer_tab_widget_background" />
    </LinearLayout>
    <!-- "-->
</android.support.v4.app.FragmentTabHost>

你喜欢吗?是的,但我的图像不是完美的矩形,它们有点斜。请查看图像链接。谢谢。是的,我看到了它们。你必须为它们创建自定义选项卡。你可以使用TabWidget,通过设置分隔符使分隔符透明color@user2787602你解决了吗?
mTabHost = (FragmentTabHost) rootView.findViewById(android.R.id.tabhost);
        mTabWidget = (TabWidget) rootView.findViewById(android.R.id.tabs);
        mTabHost.setup(getActivity(), getChildFragmentManager(), android.R.id.tabcontent);