2015-03-09 3 views
0

Мне нужно установить не прямоугольные или квадратные изображения в виде фоновых изображений FragmentTabHost следующим образом: http://i.imgur.com/yWbDi0a.jpg?1.Установите фон без прямоугольника в FragmentTabHost

Но я получаю это: http://i.imgur.com/g1jvmsb.png?1 (разделитель по умолчанию между вкладками режет мое изображение) :(Пожалуйста, помогите

У меня есть эти диагонали формы изображения, и я хочу, чтобы установить их в качестве фонового изображения в моих отдельных вкладках . Это то, что я сделал далеко.

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; 
} 
} 
+0

Вы делаете, как [это] (Http: // StackOverflow. ком/вопросы/17897351 /, как в настройку-андроид-закладки-или-фоне изменение)? –

+0

Да, но мои изображения не совсем прямоугольные, они немного диагональны. См. Ссылки на изображения. Благодарю. – Shaw

+0

Да, я их видел. Вам нужно будет сделать для них пользовательские вкладки. –

ответ

0

Вы можете использовать TabWidget и сделать делитель прозрачного, установив разделительного цвет

android:divider="@color/transparent" 

Ваш TabHost XML может быть как this-

<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> 

и код для TabHost и установки TabWidget может быть, как это

mTabHost = (FragmentTabHost) rootView.findViewById(android.R.id.tabhost); 
     mTabWidget = (TabWidget) rootView.findViewById(android.R.id.tabs); 
     mTabHost.setup(getActivity(), getChildFragmentManager(), android.R.id.tabcontent); 
Смежные вопросы