2012-05-26 6 views
4

Я хочу, чтобы создать TabBar, как, как на изображении ниже:Как создать центральную панель в андроиде?

enter image description here

Здесь все панели вкладок нормальны. Просто они изготовлены на заказ. Теперь я хочу создать панель вкладок, как показано выше. В котором поднят центр Tab.

Итак, что я должен сделать, чтобы сделать это возможным?

Если есть демо, тогда это будет хорошо.

Пожалуйста, помогите мне.

+0

Редизайн приложение для Android, прямые порты iPhone являются слабыми. – FunkTheMonk

+1

вы можете найти демо [по этой ссылке] (http://androidcustomviews.com/portfolio/custom-tabbar-android/) –

+0

@Girish Bhutiya. Спасибо за ответ, но я уже решил. –

ответ

8

вы можете установить фоновое изображение Tab виджета, как

tabHost.getTabWidget().getChildAt(0).setBackgroundResource(R.drawable.home_h); 
tabHost.getTabWidget().getChildAt(1).setBackgroundResource(R.drawable.live); 
tabHost.getTabWidget().getChildAt(2).setBackgroundResource(R.drawable.camera); 
tabHost.getTabWidget().getChildAt(3).setBackgroundResource(R.drawable.profile); 
tabHost.getTabWidget().getChildAt(4).setBackgroundResource(R.drawable.Messege); 

создать образ как другие четыре, как их верхние 20%, как прозрачный и средней камеры создают в качестве кривой база . вы достигнете своей цели.

Нравится это, когда серая часть является частью Transparency. enter image description here

enter image description here

+0

Да, я видел тебя, но его изображение в квадрате. Мне нужна вкладка центра, как у меня на моем вопроснике. –

+1

Не нужно менять изображение центра, так как я показываю, что мне нужно изменить другое изображение из четырех изображений, как HOME imaeg. он будет установлен, –

+0

hardik Gajjar: Спасибо. Позвольте мне попробовать. Вы имеете в виду, что я должен ставить другие изображения на 20% меньше по высоте по сравнению с центральным изображением? –

2

Я делаю что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/tabhost" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<RelativeLayout 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

    <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:tabStripEnabled="false"/> 

    <FrameLayout 
     android:id="@android:id/tabcontent" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/btn1" /> 

     <ImageView 
      android:id="@+id/btn1"   
      android:layout_alignParentBottom="true"  
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toLeftOf="@+id/btn2" 
      android:src="@drawable/ic_launcher"/> 

     <ImageView 
      android:id="@+id/btn2" 
      android:layout_alignParentBottom="true" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toLeftOf="@+id/btn3" 
      android:src="@drawable/ic_launcher"/> 

     <ImageView 
      android:id="@+id/btn3" 
      android:layout_alignParentBottom="true" 
      android:layout_centerHorizontal="true" 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:src="@drawable/ic_launcher"/>  

     <ImageView 
      android:id="@+id/btn4" 
      android:layout_toRightOf="@+id/btn3" 
      android:layout_alignParentBottom="true" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher"/>  

     <ImageView 
      android:id="@+id/btn5" 
      android:layout_toRightOf="@+id/btn4" 
      android:layout_alignParentBottom="true" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher"/>           

</RelativeLayout> 
</TabHost> 

Я избавиться от сборки в TabWidget и настройке мой собственный, LinearLayout. Позже вам просто нужно установить функцию onClick в основной вкладке.

Как:

public void onClick(View v) 
    { 
      switch(v.getId()) 
      { 
        case R.id.btn1: 
          tabHost.setCurrentTab(0); 
          break; 
        case R.id.btn2: 
          tabHost.setCurrentTab(1); 
          break; 
        case R.id.btn3: 
          tabHost.setCurrentTab(2); 
          break; 
        case R.id.btn4: 
          tabHost.setCurrentTab(3); 
          break; 
        case R.id.btn5: 
          tabHost.setCurrentTab(4); 
          break; 
      } 
    }  
+0

Спасибо за ответ. Но как насчет вкладки центра. Я хочу поднять его в круглой форме. –

+0

вы делаете это, используя RelativeLayout в качестве основного держателя. – goodm

+0

не могли бы вы дать полную инструкцию о том, как это сделать? –

Смежные вопросы