android 底部菜单栏(仿微信顶部菜单栏)

系统管理员 2023-10-10 12:01 63阅读 0赞

效果截图:

Center

布局文件:

tabhost.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@android:id/tabhost"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent" >
  6. <RelativeLayout
  7. android:layout_width="fill_parent"
  8. android:layout_height="fill_parent"
  9. android:orientation="vertical" >
  10. <FrameLayout
  11. android:id="@android:id/tabcontent"
  12. android:layout_width="fill_parent"
  13. android:layout_height="fill_parent" />
  14. <TabWidget
  15. android:id="@android:id/tabs"
  16. android:layout_width="fill_parent"
  17. android:layout_height="wrap_content"
  18. android:layout_alignParentBottom="true"
  19. android:background="@drawable/tab_bkg"
  20. android:fadingEdge="none"
  21. android:fadingEdgeLength="0.0px" />
  22. </RelativeLayout>
  23. </TabHost>

核心代码:

  1. package com.rf.main;
  2. import com.rf.function.AttentionActivity;
  3. import com.rf.function.HomeTimeLineActivity;
  4. import com.rf.function.MessageActivity;
  5. import com.rf.function.ReferActivity;
  6. import com.rf.function.SearchActivity;
  7. import com.rf.qqweixun.R;
  8. import android.app.TabActivity;
  9. import android.content.Intent;
  10. import android.view.View;
  11. import android.view.Window;
  12. import android.view.WindowManager;
  13. import android.widget.ImageView;
  14. import android.widget.RadioGroup;
  15. import android.widget.TabHost;
  16. import android.widget.TextView;
  17. public class MainActivity extends TabActivity {
  18. // 相关资源
  19. private TabHost tabHost;
  20. private RadioGroup mainbtGroup;
  21. private static final String HOME = "主页";
  22. private static final String REFER = "提及";
  23. private static final String SECRET = "私信";
  24. private static final String SEARCH = "搜索";
  25. private static final String ATTENTIION = "关注";
  26. @Override
  27. public void setContentView(int layoutResID) {
  28. // TODO 全屏显示代码
  29. this.requestWindowFeature(Window.FEATURE_NO_TITLE);
  30. this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  31. WindowManager.LayoutParams.FLAG_FULLSCREEN);
  32. super.setContentView(R.layout.tabhost);
  33. tabHost = this.getTabHost();
  34. View view1 = View.inflate(MainActivity.this, R.layout.tab, null);
  35. ((ImageView) view1.findViewById(R.id.tab_imageview_icon)).setImageResource(R.drawable.tab_timeline_selector);//设置每一个tab的图标
  36. ((TextView) view1.findViewById(R.id.tab_textview_title)).setText(HOME);
  37. TabHost.TabSpec spec1 = tabHost.newTabSpec(HOME)
  38. .setIndicator(view1)
  39. .setContent(new Intent(this, HomeTimeLineActivity.class));
  40. tabHost.addTab(spec1);
  41. View view2 = View.inflate(MainActivity.this, R.layout.tab, null);
  42. ((ImageView) view2.findViewById(R.id.tab_imageview_icon)).setImageResource(R.drawable.tab_atme_selector);
  43. ((TextView) view2.findViewById(R.id.tab_textview_title)).setText(REFER);
  44. TabHost.TabSpec spec2 = tabHost.newTabSpec(REFER)
  45. .setIndicator(view2)
  46. .setContent(new Intent(this, ReferActivity.class));
  47. tabHost.addTab(spec2);
  48. View view3 = View.inflate(MainActivity.this, R.layout.tab, null);
  49. ((ImageView) view3.findViewById(R.id.tab_imageview_icon)).setImageResource(R.drawable.tab_message_selector);
  50. ((TextView) view3.findViewById(R.id.tab_textview_title)).setText(SECRET);
  51. TabHost.TabSpec spec3 = tabHost.newTabSpec(SECRET)
  52. .setIndicator(view3)
  53. .setContent(new Intent(this, MessageActivity.class));
  54. tabHost.addTab(spec3);
  55. View view4 = View.inflate(MainActivity.this, R.layout.tab, null);
  56. ((ImageView) view4.findViewById(R.id.tab_imageview_icon)).setImageResource(R.drawable.tab_explore_selector);
  57. ((TextView) view4.findViewById(R.id.tab_textview_title)).setText(SEARCH);
  58. TabHost.TabSpec spec4 = tabHost.newTabSpec(SEARCH)
  59. .setIndicator(view4)
  60. .setContent(new Intent(this, SearchActivity.class));
  61. tabHost.addTab(spec4);
  62. View view5 = View.inflate(MainActivity.this, R.layout.tab, null);
  63. ((ImageView) view5.findViewById(R.id.tab_imageview_icon)).setImageResource(R.drawable.tab_focus_selector);
  64. ((TextView) view5.findViewById(R.id.tab_textview_title)).setText(ATTENTIION);
  65. TabHost.TabSpec spec5 = tabHost.newTabSpec(ATTENTIION)
  66. .setIndicator(view5)
  67. .setContent(new Intent(this, AttentionActivity.class));
  68. tabHost.addTab(spec5);
  69. }
  70. }

样式布局文件:tab.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="wrap_content"
  5. android:orientation="vertical" >
  6. <ImageView
  7. android:id="@+id/tab_imageview_icon"
  8. android:layout_width="fill_parent"
  9. android:layout_height="32.0dip"
  10. android:scaleType="fitCenter" />
  11. <TextView
  12. android:id="@+id/tab_textview_title"
  13. android:layout_width="fill_parent"
  14. android:layout_height="wrap_content"
  15. android:ellipsize="marquee"
  16. android:gravity="center"
  17. android:marqueeRepeatLimit="1"
  18. android:singleLine="true"
  19. android:textSize="11.0sp" />
  20. </LinearLayout>

发表评论

表情:
评论列表 (有 0 条评论,63人围观)

还没有评论,来说两句吧...

相关阅读

    相关 GUI菜单

    【一】MenuBar、MenuItem、Menu > 菜单: > MenuBar:类封装绑定到框架的菜单栏的平台概念。 > Menu:对象是从菜单栏部署的下拉式菜单组