技术开发 频道

Android如何实现底部菜单栏

  【IT168技术】Android程序,许多时候需要菜单栏显示在底部或顶部,但是没有很好的组建供程序员调用,过自定义了一个视图,用来实现底部菜单栏,效果如下图:

Android如何实现底部菜单栏

  实现的主要代码:

  Java代码:

@Override    
    
public void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);    
        requestWindowFeature(Window.FEATURE_NO_TITLE);    
        setContentView(R.layout.main);    
  
        linearLayout
= (LinearLayout) findViewById(R.id.home);    
        linearLayout.setOnClickListener(
new OnClickListener() {    
            @Override    
            
public void onClick(View v) {    
                linearLayout    
                        .setBackgroundResource(R.drawable.tab_two_highlight);    
                publish.setBackgroundResource(R.drawable.tab_one_normal);    
                change.setBackgroundResource(R.drawable.tab_one_normal);    
                more.setBackgroundResource(R.drawable.tab_one_normal);    
            }    
        });    
        linearLayout    
        .setBackgroundResource(R.drawable.tab_two_highlight);    
  
        publish
= (LinearLayout) findViewById(R.id.publish);    
        publish.setOnClickListener(
new OnClickListener() {    
            @Override    
            
public void onClick(View v) {    
                publish.setBackgroundResource(R.drawable.tab_two_highlight);    
                linearLayout.setBackgroundResource(R.drawable.tab_one_normal);    
                change.setBackgroundResource(R.drawable.tab_one_normal);    
                more.setBackgroundResource(R.drawable.tab_one_normal);    
            }    
        });    
  
        change
= (LinearLayout) findViewById(R.id.change);    
        change.setOnClickListener(
new OnClickListener() {    
            @Override    
            
public void onClick(View v) {    
                change.setBackgroundResource(R.drawable.tab_two_highlight);    
                linearLayout.setBackgroundResource(R.drawable.tab_one_normal);    
                publish.setBackgroundResource(R.drawable.tab_one_normal);    
                more.setBackgroundResource(R.drawable.tab_one_normal);    
            }    
        });    
  
        more
= (LinearLayout) findViewById(R.id.more);    
        more.setOnClickListener(
new OnClickListener() {    
            @Override    
            
public void onClick(View v) {    
                more.setBackgroundResource(R.drawable.tab_two_highlight);    
                linearLayout.setBackgroundResource(R.drawable.tab_one_normal);    
                publish.setBackgroundResource(R.drawable.tab_one_normal);    
                change.setBackgroundResource(R.drawable.tab_one_normal);    
            }    
        });    
    }    
@Override    
public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         requestWindowFeature(Window.FEATURE_NO_TITLE);        

 

  配置文件实现:

  Xml代码:

<?xml version="1.0" encoding="utf-8"?>    
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    android:orientation
="horizontal" android:layout_width="fill_parent"    
    android:layout_height
="wrap_content">    
    
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
        android:orientation
="vertical" android:layout_width="80px"    
        android:layout_height
="wrap_content" android:id="@+id/home"    
        android:background
="@drawable/tab_one_normal">    
        
<TextView android:layout_width="wrap_content"    
            android:layout_height
="wrap_content" android:text="@string/home"    
            android:gravity
="center" android:paddingTop="29px"    
            android:background
="@drawable/home" />    
    
</LinearLayout>    
    
<ImageView android:layout_width="wrap_content"    
            android:layout_height
="wrap_content"  android:src="@drawable/line" />    
    
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
        android:orientation
="vertical" android:layout_width="80px"    
        android:layout_height
="wrap_content" android:background="@drawable/tab_one_normal"    
        android:id
="@+id/publish">    
        
<TextView android:layout_width="wrap_content"    
            android:layout_height
="wrap_content" android:text="@string/publish"    
            android:gravity
="center" android:paddingTop="29px"    
             android:background
="@drawable/publish" />    
    
</LinearLayout>    
    
<ImageView android:layout_width="wrap_content"    
            android:layout_height
="wrap_content"  android:src="@drawable/line" />    
    
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
        android:orientation
="vertical" android:layout_width="80px" android:id="@+id/change"    
        android:layout_height
="wrap_content" android:background="@drawable/tab_one_normal">    
        
<TextView android:layout_width="wrap_content"    
            android:layout_height
="wrap_content" android:text="@string/change"    
            android:gravity
="center" android:paddingTop="29px"    
             android:background
="@drawable/change" />    
    
</LinearLayout>    
    
<ImageView android:layout_width="wrap_content"    
            android:layout_height
="wrap_content"  android:src="@drawable/line" />    
    
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
        android:orientation
="vertical" android:layout_width="80px" android:id="@+id/more"    
        android:layout_height
="wrap_content" android:background="@drawable/tab_one_normal">    
        
<TextView android:layout_width="wrap_content"    
            android:layout_height
="wrap_content" android:text="@string/more"    
            android:gravity
="center" android:paddingTop="29px"    
             android:background
="@drawable/more" />    
    
</LinearLayout>    
</LinearLayout>    

 

  代码详见:http://easymorse.googlecode.com/svn/trunk/android.bottom/

0
相关文章