Android copy UC bottom menu bar implementation principle and code

  • 2020-05-07 20:29:18
  • OfStack

related links :
Android bottom menu bar implementation

After reading ViewPager recently, I came up with the idea of making an Demo like this. Of course, I also referred to the grid menu in the examples of experts. At the beginning, I planned to use the custom imgBtn, but I found it difficult to put it in the pager TAB for typesetting, so I had better choose GridView, which is simple and practical

1. Host interface xml
activity_main.xml
 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/bg" 
tools:context=".MainActivity" > 
<Button 
android:id="@+id/btn_menu" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_alignParentTop="true" 
android:layout_centerHorizontal="true" 
android:text="show/hide Menu" /> 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_below="@+id/btn_menu" 
android:gravity="center" 
android:orientation="horizontal" > 
<com.example.myMenu.MyImgBtn 
android:id="@+id/main_btn1" 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_margin="15dp" 
android:layout_weight="1" /> 
<com.example.myMenu.MyImgBtn 
android:id="@+id/main_btn2" 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_margin="15dp" 
android:layout_weight="1" /> 
<com.example.myMenu.MyImgBtn 
android:id="@+id/main_btn3" 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_margin="15dp" 
android:layout_weight="1" /> 
<com.example.myMenu.MyImgBtn 
android:id="@+id/main_btn4" 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_margin="15dp" 
android:layout_weight="1" /> 
</LinearLayout> 
<RelativeLayout 
android:id="@+id/layout_menu" 
android:layout_width="match_parent" 
android:layout_height="200dp" 
android:layout_alignParentBottom="true" > 
<LinearLayout 
android:id="@+id/menu" 
android:layout_width="match_parent" 
android:layout_height="40dp" 
android:background="#dd000000" 
android:gravity="center" > 
<TextView 
android:id="@+id/tv_main" 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:gravity="center" 
android:text=" The commonly used " 
android:textColor="#ffffffff" /> 
<TextView 
android:id="@+id/tv_utils" 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:gravity="center" 
android:text=" tool " 
android:textColor="#ffffffff" /> 
<TextView 
android:id="@+id/tv_set" 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:gravity="center" 
android:text=" Set up the " 
android:textColor="#ffffffff" /> 
</LinearLayout> 
<LinearLayout 
android:id="@+id/layout_anim" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_below="@+id/menu" 
android:background="#eeff8c00" > 
<ImageView 
android:id="@+id/iv_cursor" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:scaleType="matrix" 
android:src="@drawable/img_cursor" /> 
</LinearLayout> 
<android.support.v4.view.ViewPager 
android:id="@+id/myPager" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_below="@+id/layout_anim" 
android:flipInterval="30" 
android:persistentDrawingCache="animation" /> 
</RelativeLayout> 
</RelativeLayout> 

The three tabs in ViewPager are xml
view_main.xml,view_set.xml,view_utils.xml
 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#77ff0000" 
android:orientation="vertical" > 
<GridView 
android:id="@+id/myGridView" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:numColumns="4" 
android:layout_margin="10dp" 
android:horizontalSpacing="20dp" 
android:gravity="center" 
android:verticalSpacing="20dp" 
></GridView> 
</LinearLayout> 

This is TAB 1view_main.xml. The last two are like this one
Finally, there is an GirdView adapter, xml
 
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 
<ImageView 
android:id="@+id/imgbtn_img" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_centerHorizontal="true" 
/> 
<TextView 
android:id="@+id/imgbtn_text" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_below="@+id/imgbtn_img" 
android:layout_centerHorizontal="true" 
android:text="Text" 
android:textColor="#ff0000ff" 
android:textSize="10sp" /> 
</RelativeLayout> 

So much for the xml layout

Related articles: