Android仿微信底部菜单
  RhNPwA0V2ypD 2023年11月02日 49 0


 



今天终于把公司的界面原型做完了,哈哈,提前完成正好趁现在有时间更新下最近学到的一些特殊效果。其中这个仿微信的底部菜单,真的要感谢家辉兄弟,我才得以解决。首先看一下实现后效果。


     

Android仿微信底部菜单_android

    就下面的那个底部栏,下面看一下实现代码吧!

    首先是布局main.xml:

 




1. <?xml version="1.0" encoding="UTF-8"?>  
2. <TabHost android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"  
3. xmlns:android="http://schemas.android.com/apk/res/android">  
4. <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">  
5. <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="0.0dip" android:layout_weight="1.0" />  
6. <TabWidget android:id="@android:id/tabs" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0.0" />  
7.   
8. <LinearLayout android:gravity="bottom" android:layout_gravity="bottom" android:orientation="horizontal" android:id="@+id/main_tab_group" android:background="@drawable/bottom1" android:paddingTop="2.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content">  
9. <FrameLayout android:background="@null" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">  
10. <LinearLayout android:id="@+id/main_layout_addExam" android:gravity="bottom|center" android:layout_width="fill_parent" android:layout_height="fill_parent">  
11. <RadioButton android:id="@+id/main_tab_addExam" android:checked="true" android:text="添加考试" android:drawableTop="@drawable/label_1" style="@style/MMTabButton" />  
12. </LinearLayout>  
13. <LinearLayout  android:gravity="top|right|center" android:paddingRight="10.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">  
14. <TextView android:textSize="10.0dip" android:text="1" android:textColor="#ffffff" android:gravity="center" android:id="@+id/main_tab_unread_tv" android:background="@drawable/new_icon_2" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content"  />  
15. </LinearLayout>  
16. </FrameLayout>  
17. <FrameLayout android:background="@null" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">  
18. <LinearLayout android:id="@+id/main_layout_myExam" android:gravity="bottom|center" android:layout_width="fill_parent" android:layout_height="fill_parent">  
19. <RadioButton android:id="@+id/main_tab_myExam" android:text="我的考试" android:drawableTop="@drawable/label_2" style="@style/MMTabButton" />  
20. </LinearLayout>  
21. <LinearLayout android:gravity="top|right|center" android:paddingRight="10.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">  
22. <TextView android:textSize="10.0dip" android:textColor="#ffffff" android:gravity="center" android:id="@+id/main_tab_address" android:background="@drawable/new_icon_2" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" />  
23. </LinearLayout>  
24. </FrameLayout>  
25. <FrameLayout android:background="@null" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">  
26. <LinearLayout android:id="@+id/main_layout_message" android:gravity="bottom|center" android:layout_width="fill_parent" android:layout_height="fill_parent">  
27. <RadioButton android:id="@+id/main_tab_message" android:text="考试资讯" android:drawableTop="@drawable/label_3" style="@style/MMTabButton" />  
28. </LinearLayout>  
29. <LinearLayout android:gravity="top|right|center" android:paddingRight="10.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">  
30. <TextView android:textSize="12.0dip" android:textColor="#ffffff" android:gravity="center" android:id="@+id/main_tab_new_tv" android:background="@drawable/new_icon_2" android:visibility="visible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" />  
31. </LinearLayout>  
32. </FrameLayout>  
33. <FrameLayout android:background="@null" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">  
34. <LinearLayout android:id="@+id/main_layout_settings" android:gravity="bottom|center" android:layout_width="fill_parent" android:layout_height="fill_parent">  
35. <RadioButton android:id="@+id/main_tab_settings" android:text="设置" android:drawableTop="@drawable/label4" style="@style/MMTabButton" />  
36. </LinearLayout>  
37. <LinearLayout android:gravity="top|right|center" android:paddingRight="10.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">  
38. <TextView android:textSize="10.0dip" android:textColor="#ffffff" android:gravity="center" android:id="@+id/main_tab_setting_new_tv" android:background="@drawable/new_icon_2" android:paddingLeft="6.0dip" android:paddingRight="6.0dip" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" />  
39. </LinearLayout>  
40. </FrameLayout>  
41. </LinearLayout>  
42. </LinearLayout>  
43. </TabHost>


      其实就是用FrameLayout,微信也是这样布局的我反编译过。这样就可以灵活的布局那个红色的图标了。


 

      下面看一下activity切换代码:

 



1. import android.app.TabActivity;  
2. import android.content.Intent;  
3. import android.os.Bundle;  
4. import android.view.View;  
5. import android.view.View.OnClickListener;  
6. import android.view.Window;  
7. import android.widget.LinearLayout;  
8. import android.widget.RadioButton;  
9. import android.widget.TabHost;  
10. import android.widget.TextView;  
11.   
12. public class MainTabActivity extends TabActivity {  
13.   
14.     TabHost tabHost;  
15.     private TextView main_tab_unread_tv;  
16.     private RadioButton main_tab_addExam, main_tab_myExam,main_tab_message,main_tab_settings;  
17.     private LinearLayout main_layout_addExam,main_layout_myExam,main_layout_message,main_layout_settings;  
18.   
19.     public void onCreate(Bundle savedInstanceState) {  
20.         super.onCreate(savedInstanceState);  
21.         this.requestWindowFeature(Window.FEATURE_NO_TITLE);  
22.         setContentView(R.layout.main);  
23.   
24.         initTab();  
25.           
26.         init();  
27.           
28.     }  
29.   
30.     private void init() {  
31.   
32. main_tab_addExam = (RadioButton) findViewById(R.id.main_tab_addExam);  
33.   
34. main_tab_myExam = (RadioButton) findViewById(R.id.main_tab_myExam);  
35.           
36. main_tab_message=(RadioButton) findViewById(R.id.main_tab_message);  
37.           
38. main_tab_settings=(RadioButton) findViewById(R.id.main_tab_settings);  
39.           
40. main_layout_addExam=(LinearLayout) findViewById(R.id.main_layout_addExam);  
41. main_layout_myExam=(LinearLayout) findViewById(R.id.main_layout_myExam);  
42. main_layout_message=(LinearLayout) findViewById(R.id.main_layout_message);  
43. main_layout_settings=(LinearLayout) findViewById(R.id.main_layout_settings);  
44.           
45.         main_tab_addExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_one_one), null, null);  
46.         main_layout_addExam.setBackgroundResource(R.drawable.labelbg);  
47.           
48. main_tab_unread_tv=(TextView) findViewById(R.id.main_tab_unread_tv);  
49.         //main_tab_unread_tv.setVisibility(View.VISIBLE);  
50.         //main_tab_unread_tv.setText("3");  
51.           
52.         main_tab_addExam.setOnClickListener(new OnClickListener() {  
53.               
54.             public void onClick(View arg0) {  
55.                 tabHost.setCurrentTabByTag("first");  
56.                 /*main_tab_addExam.setBackgroundResource(R.drawable.label_one_one);  
57.                 main_tab_myExam.setBackgroundResource(R.drawable.label_2);  
58.                 main_tab_message.setBackgroundResource(R.drawable.label_3);*/  
59.                 //main_tab_addExam.setCompoundDrawables(null, getResources().getDrawable(R.drawable.label_one_one), null, null);  
60.                 main_tab_addExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_one_one), null, null);  
61.                 main_tab_myExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_2), null, null);  
62.                 main_tab_message.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_3), null, null);  
63.                 main_tab_settings.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label4), null, null);  
64.                 main_layout_addExam.setBackgroundResource(R.drawable.labelbg);  
65.                 main_layout_myExam.setBackgroundResource(R.drawable.mm_trans);  
66.                 main_layout_message.setBackgroundResource(R.drawable.mm_trans);  
67.                 main_layout_settings.setBackgroundResource(R.drawable.mm_trans);  
68.             }  
69.         });  
70.           
71.         main_tab_myExam.setOnClickListener(new OnClickListener() {  
72.               
73.             public void onClick(View arg0) {  
74.                 tabHost.setCurrentTabByTag("second");  
75.                 /*main_tab_addExam.setBackgroundResource(R.drawable.label_1);  
76.                 main_tab_myExam.setBackgroundResource(R.drawable.label_two_one);  
77.                 main_tab_message.setBackgroundResource(R.drawable.label_3);*/  
78.                 main_tab_addExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_1), null, null);  
79.                 main_tab_myExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_two_one), null, null);  
80.                 main_tab_message.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_3), null, null);  
81.                 main_tab_settings.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label4), null, null);  
82.                 main_layout_addExam.setBackgroundResource(R.drawable.mm_trans);  
83.                 main_layout_myExam.setBackgroundResource(R.drawable.labelbg);  
84.                 main_layout_message.setBackgroundResource(R.drawable.mm_trans);  
85.                 main_layout_settings.setBackgroundResource(R.drawable.mm_trans);  
86.             }  
87.         });  
88.         main_tab_message.setOnClickListener(new OnClickListener() {  
89.               
90.             public void onClick(View v) {  
91.                 // TODO Auto-generated method stub  
92.                 tabHost.setCurrentTabByTag("third");  
93.                 /*main_tab_addExam.setBackgroundResource(R.drawable.label_1);  
94.                 main_tab_myExam.setBackgroundResource(R.drawable.label_2);  
95.                 main_tab_message.setBackgroundResource(R.drawable.label_three_one);*/  
96.                 main_tab_addExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_1), null, null);  
97.                 main_tab_myExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_2), null, null);  
98.                 main_tab_message.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_three_one), null, null);  
99.                 main_tab_settings.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label4), null, null);  
100.                 main_layout_addExam.setBackgroundResource(R.drawable.mm_trans);  
101.                 main_layout_myExam.setBackgroundResource(R.drawable.mm_trans);  
102.                 main_layout_message.setBackgroundResource(R.drawable.labelbg);  
103.                 main_layout_settings.setBackgroundResource(R.drawable.mm_trans);  
104.             }  
105.         });  
106.           
107.         main_tab_settings.setOnClickListener(new OnClickListener() {  
108.               
109.             public void onClick(View v) {  
110.                 // TODO Auto-generated method stub  
111.                 tabHost.setCurrentTabByTag("four");  
112.                 main_tab_addExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_1), null, null);  
113.                 main_tab_myExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_2), null, null);  
114.                 main_tab_message.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_3), null, null);  
115.                 main_tab_settings.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_four_one), null, null);  
116.                 main_layout_addExam.setBackgroundResource(R.drawable.mm_trans);  
117.                 main_layout_myExam.setBackgroundResource(R.drawable.mm_trans);  
118.                 main_layout_message.setBackgroundResource(R.drawable.mm_trans);  
119.                 main_layout_settings.setBackgroundResource(R.drawable.labelbg);  
120.             }  
121.         });  
122.     }  
123.       
124.       
125.     private void initTab(){  
126. tabHost=getTabHost();  
127.         tabHost.addTab(tabHost.newTabSpec("first").setIndicator("first").setContent(  
128.                 new Intent(this, AddExamActivity.class)));  
129.   
130.         tabHost.addTab(tabHost.newTabSpec("second").setIndicator("second").setContent(  
131.                 new Intent(this, MyExamActivity.class)));  
132.           
133.         tabHost.addTab(tabHost.newTabSpec("third").setIndicator("third").setContent(  
134.                 new Intent(this, MessageActivity.class)));  
135.           
136.         tabHost.addTab(tabHost.newTabSpec("four").setIndicator("four").setContent(  
137.                 new Intent(this, SettingActivity.class)));  
138.   
139.     }  
140.   
141. }

        setCompoundDrawablesWithIntrinsicBounds方法是我用来设置顶部图片的,用来替换android:drawableTop这个属性的背景图,至于为什么那么麻烦每次都要设置背景图片颜色,是因为没用用RadioGroup包含RadioButton,所以RadioButton就不能做到单个切换。


      


     

Android仿微信底部菜单_android

    就下面的那个底部栏,下面看一下实现代码吧!

    首先是布局main.xml:

 




1. <?xml version="1.0" encoding="UTF-8"?>  
2. <TabHost android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"  
3. xmlns:android="http://schemas.android.com/apk/res/android">  
4. <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">  
5. <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="0.0dip" android:layout_weight="1.0" />  
6. <TabWidget android:id="@android:id/tabs" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0.0" />  
7.   
8. <LinearLayout android:gravity="bottom" android:layout_gravity="bottom" android:orientation="horizontal" android:id="@+id/main_tab_group" android:background="@drawable/bottom1" android:paddingTop="2.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content">  
9. <FrameLayout android:background="@null" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">  
10. <LinearLayout android:id="@+id/main_layout_addExam" android:gravity="bottom|center" android:layout_width="fill_parent" android:layout_height="fill_parent">  
11. <RadioButton android:id="@+id/main_tab_addExam" android:checked="true" android:text="添加考试" android:drawableTop="@drawable/label_1" style="@style/MMTabButton" />  
12. </LinearLayout>  
13. <LinearLayout  android:gravity="top|right|center" android:paddingRight="10.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">  
14. <TextView android:textSize="10.0dip" android:text="1" android:textColor="#ffffff" android:gravity="center" android:id="@+id/main_tab_unread_tv" android:background="@drawable/new_icon_2" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content"  />  
15. </LinearLayout>  
16. </FrameLayout>  
17. <FrameLayout android:background="@null" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">  
18. <LinearLayout android:id="@+id/main_layout_myExam" android:gravity="bottom|center" android:layout_width="fill_parent" android:layout_height="fill_parent">  
19. <RadioButton android:id="@+id/main_tab_myExam" android:text="我的考试" android:drawableTop="@drawable/label_2" style="@style/MMTabButton" />  
20. </LinearLayout>  
21. <LinearLayout android:gravity="top|right|center" android:paddingRight="10.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">  
22. <TextView android:textSize="10.0dip" android:textColor="#ffffff" android:gravity="center" android:id="@+id/main_tab_address" android:background="@drawable/new_icon_2" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" />  
23. </LinearLayout>  
24. </FrameLayout>  
25. <FrameLayout android:background="@null" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">  
26. <LinearLayout android:id="@+id/main_layout_message" android:gravity="bottom|center" android:layout_width="fill_parent" android:layout_height="fill_parent">  
27. <RadioButton android:id="@+id/main_tab_message" android:text="考试资讯" android:drawableTop="@drawable/label_3" style="@style/MMTabButton" />  
28. </LinearLayout>  
29. <LinearLayout android:gravity="top|right|center" android:paddingRight="10.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">  
30. <TextView android:textSize="12.0dip" android:textColor="#ffffff" android:gravity="center" android:id="@+id/main_tab_new_tv" android:background="@drawable/new_icon_2" android:visibility="visible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" />  
31. </LinearLayout>  
32. </FrameLayout>  
33. <FrameLayout android:background="@null" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">  
34. <LinearLayout android:id="@+id/main_layout_settings" android:gravity="bottom|center" android:layout_width="fill_parent" android:layout_height="fill_parent">  
35. <RadioButton android:id="@+id/main_tab_settings" android:text="设置" android:drawableTop="@drawable/label4" style="@style/MMTabButton" />  
36. </LinearLayout>  
37. <LinearLayout android:gravity="top|right|center" android:paddingRight="10.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">  
38. <TextView android:textSize="10.0dip" android:textColor="#ffffff" android:gravity="center" android:id="@+id/main_tab_setting_new_tv" android:background="@drawable/new_icon_2" android:paddingLeft="6.0dip" android:paddingRight="6.0dip" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" />  
39. </LinearLayout>  
40. </FrameLayout>  
41. </LinearLayout>  
42. </LinearLayout>  
43. </TabHost>



      其实就是用FrameLayout,微信也是这样布局的我反编译过。这样就可以灵活的布局那个红色的图标了。


 

      下面看一下activity切换代码:

 




1. import android.app.TabActivity;  
2. import android.content.Intent;  
3. import android.os.Bundle;  
4. import android.view.View;  
5. import android.view.View.OnClickListener;  
6. import android.view.Window;  
7. import android.widget.LinearLayout;  
8. import android.widget.RadioButton;  
9. import android.widget.TabHost;  
10. import android.widget.TextView;  
11.   
12. public class MainTabActivity extends TabActivity {  
13.   
14.     TabHost tabHost;  
15.     private TextView main_tab_unread_tv;  
16.     private RadioButton main_tab_addExam, main_tab_myExam,main_tab_message,main_tab_settings;  
17.     private LinearLayout main_layout_addExam,main_layout_myExam,main_layout_message,main_layout_settings;  
18.   
19.     public void onCreate(Bundle savedInstanceState) {  
20.         super.onCreate(savedInstanceState);  
21.         this.requestWindowFeature(Window.FEATURE_NO_TITLE);  
22.         setContentView(R.layout.main);  
23.   
24.         initTab();  
25.           
26.         init();  
27.           
28.     }  
29.   
30.     private void init() {  
31.   
32. main_tab_addExam = (RadioButton) findViewById(R.id.main_tab_addExam);  
33.   
34. main_tab_myExam = (RadioButton) findViewById(R.id.main_tab_myExam);  
35.           
36. main_tab_message=(RadioButton) findViewById(R.id.main_tab_message);  
37.           
38. main_tab_settings=(RadioButton) findViewById(R.id.main_tab_settings);  
39.           
40. main_layout_addExam=(LinearLayout) findViewById(R.id.main_layout_addExam);  
41. main_layout_myExam=(LinearLayout) findViewById(R.id.main_layout_myExam);  
42. main_layout_message=(LinearLayout) findViewById(R.id.main_layout_message);  
43. main_layout_settings=(LinearLayout) findViewById(R.id.main_layout_settings);  
44.           
45.         main_tab_addExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_one_one), null, null);  
46.         main_layout_addExam.setBackgroundResource(R.drawable.labelbg);  
47.           
48. main_tab_unread_tv=(TextView) findViewById(R.id.main_tab_unread_tv);  
49.         //main_tab_unread_tv.setVisibility(View.VISIBLE);  
50.         //main_tab_unread_tv.setText("3");  
51.           
52.         main_tab_addExam.setOnClickListener(new OnClickListener() {  
53.               
54.             public void onClick(View arg0) {  
55.                 tabHost.setCurrentTabByTag("first");  
56.                 /*main_tab_addExam.setBackgroundResource(R.drawable.label_one_one);  
57.                 main_tab_myExam.setBackgroundResource(R.drawable.label_2);  
58.                 main_tab_message.setBackgroundResource(R.drawable.label_3);*/  
59.                 //main_tab_addExam.setCompoundDrawables(null, getResources().getDrawable(R.drawable.label_one_one), null, null);  
60.                 main_tab_addExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_one_one), null, null);  
61.                 main_tab_myExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_2), null, null);  
62.                 main_tab_message.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_3), null, null);  
63.                 main_tab_settings.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label4), null, null);  
64.                 main_layout_addExam.setBackgroundResource(R.drawable.labelbg);  
65.                 main_layout_myExam.setBackgroundResource(R.drawable.mm_trans);  
66.                 main_layout_message.setBackgroundResource(R.drawable.mm_trans);  
67.                 main_layout_settings.setBackgroundResource(R.drawable.mm_trans);  
68.             }  
69.         });  
70.           
71.         main_tab_myExam.setOnClickListener(new OnClickListener() {  
72.               
73.             public void onClick(View arg0) {  
74.                 tabHost.setCurrentTabByTag("second");  
75.                 /*main_tab_addExam.setBackgroundResource(R.drawable.label_1);  
76.                 main_tab_myExam.setBackgroundResource(R.drawable.label_two_one);  
77.                 main_tab_message.setBackgroundResource(R.drawable.label_3);*/  
78.                 main_tab_addExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_1), null, null);  
79.                 main_tab_myExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_two_one), null, null);  
80.                 main_tab_message.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_3), null, null);  
81.                 main_tab_settings.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label4), null, null);  
82.                 main_layout_addExam.setBackgroundResource(R.drawable.mm_trans);  
83.                 main_layout_myExam.setBackgroundResource(R.drawable.labelbg);  
84.                 main_layout_message.setBackgroundResource(R.drawable.mm_trans);  
85.                 main_layout_settings.setBackgroundResource(R.drawable.mm_trans);  
86.             }  
87.         });  
88.         main_tab_message.setOnClickListener(new OnClickListener() {  
89.               
90.             public void onClick(View v) {  
91.                 // TODO Auto-generated method stub  
92.                 tabHost.setCurrentTabByTag("third");  
93.                 /*main_tab_addExam.setBackgroundResource(R.drawable.label_1);  
94.                 main_tab_myExam.setBackgroundResource(R.drawable.label_2);  
95.                 main_tab_message.setBackgroundResource(R.drawable.label_three_one);*/  
96.                 main_tab_addExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_1), null, null);  
97.                 main_tab_myExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_2), null, null);  
98.                 main_tab_message.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_three_one), null, null);  
99.                 main_tab_settings.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label4), null, null);  
100.                 main_layout_addExam.setBackgroundResource(R.drawable.mm_trans);  
101.                 main_layout_myExam.setBackgroundResource(R.drawable.mm_trans);  
102.                 main_layout_message.setBackgroundResource(R.drawable.labelbg);  
103.                 main_layout_settings.setBackgroundResource(R.drawable.mm_trans);  
104.             }  
105.         });  
106.           
107.         main_tab_settings.setOnClickListener(new OnClickListener() {  
108.               
109.             public void onClick(View v) {  
110.                 // TODO Auto-generated method stub  
111.                 tabHost.setCurrentTabByTag("four");  
112.                 main_tab_addExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_1), null, null);  
113.                 main_tab_myExam.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_2), null, null);  
114.                 main_tab_message.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_3), null, null);  
115.                 main_tab_settings.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(R.drawable.label_four_one), null, null);  
116.                 main_layout_addExam.setBackgroundResource(R.drawable.mm_trans);  
117.                 main_layout_myExam.setBackgroundResource(R.drawable.mm_trans);  
118.                 main_layout_message.setBackgroundResource(R.drawable.mm_trans);  
119.                 main_layout_settings.setBackgroundResource(R.drawable.labelbg);  
120.             }  
121.         });  
122.     }  
123.       
124.       
125.     private void initTab(){  
126. tabHost=getTabHost();  
127.         tabHost.addTab(tabHost.newTabSpec("first").setIndicator("first").setContent(  
128.                 new Intent(this, AddExamActivity.class)));  
129.   
130.         tabHost.addTab(tabHost.newTabSpec("second").setIndicator("second").setContent(  
131.                 new Intent(this, MyExamActivity.class)));  
132.           
133.         tabHost.addTab(tabHost.newTabSpec("third").setIndicator("third").setContent(  
134.                 new Intent(this, MessageActivity.class)));  
135.           
136.         tabHost.addTab(tabHost.newTabSpec("four").setIndicator("four").setContent(  
137.                 new Intent(this, SettingActivity.class)));  
138.   
139.     }  
140.   
141. }

        setCompoundDrawablesWithIntrinsicBounds方法是我用来设置顶部图片的,用来替换android:drawableTop这个属性的背景图,至于为什么那么麻烦每次都要设置背景图片颜色,是因为没用用RadioGroup包含RadioButton,所以RadioButton就不能做到单个切换。


      

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  AIPBKp2CgHFy   2023年11月12日   35   0   0 HadoopHadoopxmlxml
  dMIEwfNiKi33   2023年12月05日   32   0   0 hivehivexmlxml
RhNPwA0V2ypD
最新推荐 更多

2024-05-31