Fragment的微信界面源代码

  1. 完成上述的网页,并且能够左右切换
  2. 注:
  3. 一下的带代码只能够在Android的3.0以上的版本中使用。
  4. 这是java文件的源代码
  5. /*
  6. *作者浅淡~夏天
  7. *Time:2014/12/14
  8. *微信界面
  9. */
  10. package com.android.xiong.fragmentnavigation2;
  11. import android.app.Activity;
  12. import android.app.Fragment;
  13. import android.app.FragmentManager;
  14. import android.app.FragmentTransaction;
  15. import android.os.Bundle;
  16. import android.view.KeyEvent;
  17. import android.view.Menu;
  18. import android.view.View;
  19. import android.view.View.OnClickListener;
  20. import android.widget.RadioButton;
  21. import android.widget.Toast;
  22. public class MainActivity extends Activity {
  23. private RadioButton ra_weixin_bt, ra_tongxunlu_bt, ra_faxian_bt, ra_wo_bt;
  24. private Fragment talkFragment, addressFragment, findFragment, meFragment;
  25. FragmentManager fgManager;
  26. private int i = 0;
  27. @Override
  28. protected void onCreate(Bundle savedInstanceState) {
  29. super.onCreate(savedInstanceState);
  30. setContentView(R.layout.activity_main);
  31. fgManager = getFragmentManager();
  32. init();
  33. ra_weixin_bt.setOnClickListener(new OnClickListener() {
  34. @Override
  35. public void onClick(View v) {
  36. talkFragment = new WeChatTalkFragment();
  37. changeFrament(talkFragment, null, "talkFragment");
  38. changeRadioButtonImage(v.getId());
  39. }
  40. });
  41. ra_tongxunlu_bt.setOnClickListener(new OnClickListener() {
  42. @Override
  43. public void onClick(View v) {
  44. addressFragment = new AddressFragment();
  45. changeFrament(addressFragment, null, "addressFragment");
  46. changeRadioButtonImage(v.getId());
  47. }
  48. });
  49. ra_faxian_bt.setOnClickListener(new OnClickListener() {
  50. @Override
  51. public void onClick(View v) {
  52. findFragment = new FindFragment();
  53. changeFrament(findFragment, null, "findFragment");
  54. changeRadioButtonImage(v.getId());
  55. }
  56. });
  57. ra_wo_bt.setOnClickListener(new OnClickListener() {
  58. @Override
  59. public void onClick(View v) {
  60. meFragment = new MeFragment();
  61. changeFrament(meFragment, null, "meFragment");
  62. changeRadioButtonImage(v.getId());
  63. }
  64. });
  65. }
  66. // 初始化信息
  67. public void init() {
  68. ra_weixin_bt = (RadioButton) findViewById(R.id.ra_weixin_bt);
  69. ra_tongxunlu_bt = (RadioButton) findViewById(R.id.ra_tongxunlu_bt);
  70. ra_faxian_bt = (RadioButton) findViewById(R.id.ra_faxian_bt);
  71. ra_wo_bt = (RadioButton) findViewById(R.id.ra_wo_bt);
  72. talkFragment = new WeChatTalkFragment();
  73. addressFragment = new AddressFragment();
  74. findFragment = new FindFragment();
  75. meFragment = new MeFragment();
  76. changeFrament(talkFragment, null, "talkFragment");
  77. // 更换 android:drawableTop图pain资源
  78. ra_weixin_bt.setCompoundDrawablesWithIntrinsicBounds(0,
  79. R.drawable.n_talk_l, 0, 0);
  80. }
  81. // 切界面
  82. public void changeFrament(Fragment fragment, Bundle bundle, String tag) {
  83. for (int i = 0, count = fgManager.getBackStackEntryCount(); i < count; i++) {
  84. fgManager.popBackStack();
  85. }
  86. FragmentTransaction fg = fgManager.beginTransaction();
  87. fragment.setArguments(bundle);
  88. fg.add(R.id.fragmentRoot, fragment, tag);
  89. fg.addToBackStack(tag);
  90. fg.commit();
  91. }
  92. // 更换RadioButton图片
  93. public void changeRadioButtonImage(int btids) {
  94. int[] imageh = { R.drawable.n_address_h, R.drawable.n_find_h,
  95. R.drawable.n_me_h, R.drawable.n_talk_h };
  96. int[] imagel = { R.drawable.n_address_l, R.drawable.n_find_l,
  97. R.drawable.n_me_l, R.drawable.n_talk_l };
  98. int[] rabt = { R.id.ra_tongxunlu_bt, R.id.ra_faxian_bt, R.id.ra_wo_bt,
  99. R.id.ra_weixin_bt };
  100. switch (btids) {
  101. case R.id.ra_tongxunlu_bt:
  102. changeImage(imageh, imagel, rabt, 0);
  103. break;
  104. case R.id.ra_faxian_bt:
  105. changeImage(imageh, imagel, rabt, 1);
  106. break;
  107. case R.id.ra_wo_bt:
  108. changeImage(imageh, imagel, rabt, 2);
  109. break;
  110. case R.id.ra_weixin_bt:
  111. changeImage(imageh, imagel, rabt, 3);
  112. break;
  113. default:
  114. break;
  115. }
  116. }
  117. @Override
  118. public boolean onKeyDown(int keyCode, KeyEvent event) {
  119. if (keyCode == KeyEvent.KEYCODE_BACK) {
  120. if (i == 0) {
  121. Toast.makeText(this, "再点击一次将退出程序", Toast.LENGTH_SHORT).show();
  122. i++;
  123. } else {
  124. this.finish();
  125. }
  126. return false;
  127. }
  128. return super.onKeyDown(keyCode, event);
  129. }
  130. public void changeImage(int[] image1, int[] image2, int[] rabtid, int index) {
  131. for (int i = 0; i < image1.length; i++) {
  132. if (i != index) {
  133. ((RadioButton) findViewById(rabtid[i]))
  134. .setCompoundDrawablesWithIntrinsicBounds(0, image1[i],
  135. 0, 0);
  136. } else {
  137. ((RadioButton) findViewById(rabtid[i]))
  138. .setCompoundDrawablesWithIntrinsicBounds(0, image2[i],
  139. 0, 0);
  140. }
  141. }
  142. }
  143. @Override
  144. public boolean onCreateOptionsMenu(Menu menu) {
  145. // Inflate the menu; this adds items to the action bar if it is present.
  146. getMenuInflater().inflate(R.menu.main, menu);
  147. return true;
  148. }
  149. }
  150. 一下是XML文件:
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:background="#dbdbdb"
  6. tools:context=".MainActivity" >
  7. <LinearLayout
  8. android:id="@+id/fragmentRoot"
  9. android:layout_width="match_parent"
  10. android:layout_height="match_parent"
  11. android:orientation="vertical" >
  12. </LinearLayout>
  13. <LinearLayout
  14. android:id="@+id/bottomList"
  15. android:layout_width="match_parent"
  16. android:layout_height="wrap_content"
  17. android:layout_alignParentBottom="true"
  18. android:background="@android:color/black"
  19. android:orientation="horizontal" >
  20. <LinearLayout style="@style/linaer_bottom" >
  21. <RadioButton
  22. android:id="@+id/ra_weixin_bt"
  23. style="@style/rbt_bottom"
  24. android:drawableTop="@drawable/n_talk_h"
  25. android:text="@string/weixin" />
  26. </LinearLayout>
  27. <LinearLayout style="@style/linaer_bottom" >
  28. <RadioButton
  29. android:id="@+id/ra_tongxunlu_bt"
  30. style="@style/rbt_bottom"
  31. android:drawableTop="@drawable/n_address_h"
  32. android:text="@string/tongxulu" />
  33. </LinearLayout>
  34. <LinearLayout style="@style/linaer_bottom" >
  35. <RadioButton
  36. android:id="@+id/ra_faxian_bt"
  37. style="@style/rbt_bottom"
  38. android:drawableTop="@drawable/n_find_h"
  39. android:text="@string/faxian" />
  40. </LinearLayout>
  41. <LinearLayout style="@style/linaer_bottom" >
  42. <RadioButton
  43. android:id="@+id/ra_wo_bt"
  44. style="@style/rbt_bottom"
  45. android:drawableTop="@drawable/n_me_h"
  46. android:text="@string/wo" />
  47. </LinearLayout>
  48. </LinearLayout>
  49. </RelativeLayout>
时间: 2024-12-28 12:36:48

Fragment的微信界面源代码的相关文章

Android仿微信界面--使用Fragment实现(慕课网笔记)

1 效果图  这里我们没有实现滑动切换view的功能 2 具体实现: 2.1 布局文件:top.xml, bottom.xml,tab01.xml,tab02.xml,tab03.xml,tab04.xml 具体请参考上述博客 2.2 新建4个Fragment,WeixinFragment,FrdFragment,AddressFragment,SettingFragment,分别对应tab01.xml,tab02.xml,tab03.xml,tab04.xml,其中这个Fragment是and

Android ActionBar仿微信界面

ActionBar仿微信界面 1.学习了别人的两篇关于ActionBar博客,在结合别人的文章来仿造一下微信的界面: 思路如下:1).利用ActionBar生成界面的头部,在用ActionBar的ActionProvider时候要注意引入的包一定是android.view.ActionProvider,不能是android.support.v4.view.ActionProvider 2),切换的Title可以参考之前之前一篇文章利用RadioGroup来做,这里是利用一个开源的项目PagerS

Android微信界面的设计

Android微信界面的设计 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51777792 微信6.0主界面: (1)整体采用垂直的LinearLayout线性布局 (2)最上面是ActionBar,搜索框SearchView,Overflow(含有4个单选菜单项) (3)中间使用ViewPager+Fragment组件,这样可实现左右滑动的界面. (4)最下面是水平的LinearLayout线性布局:含有4个自定义

Android菜鸟成长记8 -- 布局实践(微信界面的编写)

前面我们简单的介绍了一下android的五大布局,那么现在我们来实践一下,写一个简单的微信界面 首先,我们新建一个weixin.xml的linnerlayout布局 我们日常使用的微信,从简单的方面来说我可一分成三个内容,头部标签栏,中间显示信息栏,还有一个底部.那么我们就按照这个来先建一个页面 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="

Android——微信界面(简易版)

前面我们简单的介绍了一下android的五大布局,那么现在我们来实践一下,写一个简单的微信界面 首先,我们新建一个weixin.xml的linnerlayout布局 我们日常使用的微信,从简单的方面来说我可一分成三个内容,头部标签栏,中间显示信息栏,还有一个底部.那么我们就按照这个来先建一个页面 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="

【IOS源码】智能聊天机器人源码—仿微信界面

这是一个IOS智能聊天机器人的源码,采用了仿微信的风格设计,调用的是图灵机器人的API,能够实现智能聊天.讲故事.讲笑话.查天气.查公交等丰富的功能 [1].[代码] 仿微信界面: UITableView 跳至 [1] [2] [3] [4] [5] [6] ? 1 2 3 4 5 6 7 8 9 //add UItableView     self.tableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 44, self.view.f

H5仿微信界面教程(一)

前言 先来张图,仿微信界面,界面如下,并不完全一模一样,只能说有些类似,希望大家见谅. 1 用到的知识点 jQuery WeUI 是WeUI的一个jQuery实现版本,除了实现了官方插件之外,它还提供了如下拉刷新.日历.地址选择器等丰富的拓展组件.jQuery WeUI 中的JS组件均是以JQuery 插件的形式提供,使用非常方便,并且可以和React.Angular.VUE之类的主流JS框架一起使用. WeUI 是微信官方团队针对微信提供的一个H5 UI库,它只提供了一组CSS组件.jQuer

android viewpager fragment切换时界面卡顿解决办法

目前开发的程序在切换View时界面卡顿现象比较严重,影响用户体验,当前项目共就四个View,每个View也只是按钮,所以可以同时加载,不让其它view销毁. 只需在Adapter中重载destroyItem类即可 @Override public void destroyItem(ViewGroup container, int position, Object object) { //重载该方法,防止其它视图被销毁,防止加载视图卡顿 //super.destroyItem(container,

微信抢红包源代码

关于抢红包的流程 1.在非微信消息列表界面,收到通知消息的事件,推断通知栏里的文本是否有[微信红包]的keyword,有则能够推断为用户收到红包的消息(当然,你能够有益发一条包含这个keyword的文本消息去整蛊你的朋友).然后,我们就自己主动化触发这个消息的意图事件(Intent); 2.在通知栏跳进微信界面后,是去到com.tencent.mm.ui.LauncherUI这个Activity界面.我们知道,红包的消息上,包含了keyword领取红包或者View的id.那我们就依据这个keyw