`
jakielong
  • 浏览: 228370 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android实现底部菜单栏

阅读更多

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

实现的主要代码:

@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); 
            } 
        }); 
    } 

 

配置文件实现:

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

分享到:
评论

相关推荐

    Android实现底部菜单栏及切换效果代码.doc

    本示例代码展示了如何在Android应用中自定义底部菜单栏并实现切换效果。以下是对这段代码的详细解析: 首先,在`onCreate`方法中,我们调用`super.onCreate(savedInstanceState)`初始化Activity,并使用`...

    android底部菜单栏demo

    android底部菜单栏demo

    Android--底部菜单栏实现

    这篇博客"Android--底部菜单栏实现"可能详细介绍了如何在Android项目中实现这样的功能。由于没有直接提供博客的具体内容,我会根据通常的实现方法来讲解这一主题。 首先,底部菜单栏的实现通常涉及到`Bottom...

    Fragment碎片实现底部菜单栏,仿支付宝UI

    在Android应用开发中,"Fragment碎片"是一种可重用的UI组件,它可以在Activity的不同部分显示...通过以上步骤,我们就能在Android应用中实现一个功能完整且视觉效果良好的底部菜单栏,让用户在不同功能模块间轻松切换。

    Android底部菜单栏

    这个“Android底部菜单栏”教程是为初学者设计的,旨在帮助他们理解如何在Android应用中实现这一功能。我们将主要探讨TabHost组件,它是Android早期版本中用来实现标签页式导航的一种方式。 首先,我们需要了解底部...

    Android Studio 底部自定义菜单

    在`GreatWallApp`项目中,可能已经实现了这样的底部菜单,包括消息数提醒功能。消息数提醒通常需要与应用的数据模型相结合,当有新消息时,通过`BadgeView`或者在底部菜单图标上添加一个小红点来显示未读消息的数量...

    android 自定义仿微信底部菜单栏

    本教程将详细讲解如何创建一个仿微信底部菜单栏,实现类似微信聊天界面底部菜单的功能,包括菜单字体的显示与隐藏、菜单项的动态缩放等效果。 一、底部菜单栏设计 底部菜单栏(Bottom Navigation Bar)通常包含3到5...

    android底部菜单栏

    总的来说,创建Android底部菜单栏涉及到布局设计、菜单资源定义、事件监听以及可能的样式定制。开发者需要对Android的UI组件和生命周期有深入理解,才能构建出用户体验良好的底部导航功能。通过不断实践和优化,我们...

    Android五分钟让你实现底部菜单栏(fragment或者fragment+viewpager)

    在Android应用开发中,底部...通过以上方法,你可以在Android应用中轻松实现底部菜单栏,无论是简单的Fragment切换还是结合ViewPager的复杂场景。记得在实际开发中根据项目需求进行调整和优化,以提供最佳的用户体验。

    Android 使用RadioGroup实现底部菜单栏

    在Android应用开发中,创建一个底部菜单栏是十分常见的需求,它可以帮助用户在多个功能之间进行切换。本篇文章将深入探讨如何使用`RadioGroup`组件来实现这样的底部导航菜单栏。 `RadioGroup`是Android SDK提供的一...

    Android 底部菜单栏(RadioGroup+Fragment)美化

    总之,Android 底部菜单栏的实现是一个结合了RadioGroup和Fragment的重要实践。通过对RadioGroup的选择监听和Fragment的动态管理,我们可以创建出功能强大且美观的底部导航。在实际开发中,应注重用户体验,不断优化...

    android使用ViewPager实现底部菜单栏和左右滑动效果,加载多个Activity

    通过以上步骤和注意事项,你将能够成功地在Android应用中实现底部菜单栏与ViewPager的结合,达到左右滑动切换多个Activity或Fragment的效果。这种设计模式在许多应用中都得到了广泛应用,提高了用户体验和交互性。

    android底部凸起导航菜单

    本示例中的“android底部凸起导航菜单”是利用`FrameLayout`来实现的,它具有类似`RadioGroup`的交互效果,即点击某个选项时会显示高亮状态,提供清晰的用户反馈。 `FrameLayout`是Android的一种布局容器,它允许子...

    Android 实现底部导航中间菜单凸起效果

    总结一下,实现Android底部导航中间菜单凸起效果主要包括以下步骤: 1. 创建`BottomNavigationView`并设置相关属性。 2. 设计自定义的背景选择器,以实现凸起效果。 3. 使用`ObjectAnimator`添加动画效果,使凸起...

    底部菜单栏Demo

    标题"底部菜单栏Demo"表明这是一个关于如何在Android应用中实现底部菜单栏的示例项目,而描述中的"FragmentTabhost实现"揭示了实现方式是通过使用`FragmentTabHost`。 `FragmentTabHost`是Android SDK中的一个类,...

    炫酷的底部菜单栏切换效果.zip

    总之,“炫酷的底部菜单栏切换效果”是一个结合了Android底部菜单、自定义动画和视图交互设计的实例。开发者需要掌握Android UI组件的使用、动画系统的工作原理以及如何通过编程实现动态效果。通过深入理解这些知识...

    Android底部菜单栏的两种实现方式demo 附完整源码.rar

    本教程将详细讲解两种实现Android底部菜单栏的方法,并提供完整的源码供参考。 一、通过TabWidget实现底部菜单栏 TabWidget是Android SDK中的一个控件,它允许在界面上创建一个可滚动的标签页。以下是如何使用...

    android 实现底部菜单

    在Android应用开发中,创建一个底部菜单是相当常见的需求,它可以帮助用户轻松地在不同的功能模块之间切换。本文将详细讲解如何使用TabHost和RadioButton来实现这样一个底部菜单UI界面。 首先,我们需要理解TabHost...

    高仿微信底部菜单栏

    "高仿微信底部菜单栏"项目,正如标题所言,旨在提供一个无bug、即插即用的解决方案,帮助开发者快速实现类似微信底部导航栏的效果。这个项目主要涵盖了以下知识点: 1. **底部导航栏(Bottom Navigation Bar)**:...

Global site tag (gtag.js) - Google Analytics