微信界面

主要是做微信的简单的聊天界面,利用Fragment,进行微信界面的跳转

项目代码:

源代码

微信界面

图片:


这是我们要做的界面主要分为头部(top.xml)文件,底部(bottom.xml)文件,中间的tab文件总共有4个,但是我只上传一个,tab01.xml(其他的三个只需要改一下文本内容文本和ID),当点击底部图标时,界面中间的内容会发生相应的改变,下面的图标颜色也会发生改变。

利用FrameLayout将以上几个xml文件放到一起,形成微信的主界面
Activity-main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><include layout="@layout/top"></include><FrameLayoutandroid:id="@+id/id_content"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"></FrameLayout><include layout="@layout/bottom"></include>
</LinearLayout>

MainActivity.java

package com.example.mywechat;import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;import android.app.Activity;
import android.os.Bundle;import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.ImageButton;
import android.widget.LinearLayout;public class MainActivity extends Activity implements View.OnClickListener{private LinearLayout mTabWeixin;private LinearLayout mTabFrd;private LinearLayout mTabAddress;private LinearLayout mTabSettings;private ImageButton mImgWeixin;private ImageButton mImgFrd;private ImageButton mImgAddress;private ImageButton mImgSetting;private Fragment mTab01=new weixinFragment();private Fragment mTab02=new frdFragment();private Fragment mTab03=new contentFragment();private Fragment mTab04=new settingFragment();private FragmentManager fm;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);initView();initFragment();initEven();selectfragment(0);}//private void initFragment(){//fm=getFragmentManager();FragmentTransaction transaction=fm.beginTransaction();//通讯transaction.add(R.id.id_content,mTab01);transaction.add(R.id.id_content,mTab02);transaction.add(R.id.id_content,mTab03);transaction.add(R.id.id_content,mTab04);transaction.commit();}//监听private void initEven(){mTabWeixin.setOnClickListener(this);mTabFrd.setOnClickListener(this);mTabAddress.setOnClickListener(this);mTabSettings.setOnClickListener(this);}private void initView(){mTabWeixin=(LinearLayout)findViewById(R.id.id_tab_weixin);mTabFrd=(LinearLayout)findViewById(R.id.id_tab_frd);mTabAddress=(LinearLayout)findViewById(R.id.id_tab_contact);mTabSettings=(LinearLayout)findViewById(R.id.id_tab_setting);mImgWeixin=(ImageButton)findViewById(R.id.id_tab_weixin_img);mImgFrd=(ImageButton)findViewById(R.id.id_tab_frd_img);mImgAddress=(ImageButton)findViewById(R.id.id_tab_contact_img);mImgSetting=(ImageButton)findViewById(R.id.id_tab_settings_img);}//将tab全部隐藏private void hideFragment(FragmentTransaction transaction){transaction.hide(mTab01);transaction.hide(mTab02);transaction.hide(mTab03);transaction.hide(mTab04);}//用选择语句,当选到相应的图标则将tab利用show()显示出来private void selectfragment(int i){FragmentTransaction transaction=fm.beginTransaction();hideFragment(transaction);switch (i){case 0:transaction.show(mTab01);mImgWeixin.setImageResource(R.drawable.tab_weixin_pressed);break;case 1:transaction.show(mTab02);mImgWeixin.setImageResource(R.drawable.tab_find_frd_pressed);break;case 2:transaction.show(mTab03);mImgWeixin.setImageResource(R.drawable.tab_address_pressed);break;case 3:transaction.show(mTab04);mImgWeixin.setImageResource(R.drawable.tab_settings_pressed);break;default:break;}transaction.commit();}
//先将图标全部变为灰色,再利用选择语句当点击时图标变成绿色@Overridepublic void onClick(View v) {Log.d("onClick","1");resetImgs();switch (v.getId()){case R.id.id_tab_weixin:selectfragment(0);break;case R.id.id_tab_frd:selectfragment(1);break;case  R.id.id_tab_contact:selectfragment(2);break;case  R.id.id_tab_setting:selectfragment(3);break;default:break;}}//图标全部都变成灰色public void resetImgs(){mImgWeixin.setImageResource(R.drawable.tab_weixin_normal);mImgFrd.setImageResource(R.drawable.tab_find_frd_normal);mImgAddress.setImageResource(R.drawable.tab_address_normal);mImgSetting.setImageResource(R.drawable.tab_settings_normal);}
}
```

android studio开发微信界面相关推荐

  1. android studio微信界面设计,android studio开发微信界面

    android studio开发微信界面 android studio开发微信界面 功能说明:主要是做微信的简单的聊天界面,利用Fragment,进行微信界面的跳转 项目代码: 源代码地址 MainA ...

  2. Android Studio 开发–微信APP门户界面设计

    Android Studio 开发–微信APP门户界面设计 本次Github代码仓库 --crcr1013/MyWechat 文章目录 Android Studio 开发--微信APP门户界面设计 前 ...

  3. Android Studio 制作微信界面 下

    主界面 上一篇文章的链接: Android Studio 制作微信界面 上_nazonomaster的博客-CSDN博客https://blog.csdn.net/nazonomaster/artic ...

  4. Android studio开发-单界面单机小程序

    Android studio开发-单界面单机小程序 最终结果展示 步骤: 建立项目 file-new-new project 新建一个项目文件 选择一个empty activity 配置项目名称以及项 ...

  5. Android Studio 制作微信界面 上

    工程功能介绍 打开app,首先是个闪屏界面(常见于一般打开app时的小广告),设置时间为2s后进入登录界面.在登录界面中,中间可以输入密码,点击登录按钮进入微信的界面.   微信的界面由4个fragm ...

  6. 安卓移动开发实验:Android Studio设计微信界面

    一.实验的目的 通过使用Android Studio的Fragment和layout,来实现简单的微信界面切换. 二.app的功能 能够通过应用底部的bottom来实现四个页面的来回切换. 三.实验过 ...

  7. Android Studio 类微信界面的制作

    设计目标 使用Android Studio完成类微信的门户页面框架设计,APP包含4个tab页面.框架设计使用fragment,activity. 功能说明 界面的样式和微信打开后的界面相似 1点击底 ...

  8. Android Studio——类微信界面设计

    设计目标:Android studio制作简易类微信界面. 功能:展示四个可切换界面,当点击下方按钮时,界面随之切换. 布局:顶部和底部layout.主页面(中间放一个framelayout显示界面内 ...

  9. Android Studio类微信界面设计

    文章目录 一.类微信界面能实现的功能 二.xml代码 top.xml bottom.xml tab.xml activity_main.xml 三.Java代码 MainActivity.java w ...

最新文章

  1. [官版翻译]OpenStack centos版安装(三)
  2. selenium之 webdriver与三大浏览器版本映射表(更新至v2.29)
  3. hibernate中的所有属性
  4. 转 Spring.NET 与 NHibernate 的整合
  5. 【Network】高性能 UDP 服务应该怎么搞?
  6. java 中的override overload 比较
  7. [转载] SimpleHTTPServer解释:如何使用Python发送文件
  8. Xcode的gdb调试
  9. 如何整合Mybatis与Spring框架?
  10. C语言编程齿轮轮廓线坐标,C语言程序实现齿轮基本参数几何尺寸计算
  11. cad自动标注界址点_CAD自带“块属性”即可实现自动标注坐标
  12. 网线断了也能上网?被限速?
  13. html优秀作品展示,31个漂亮的作品展示网页设计
  14. 关于背包问题的递归解法
  15. Shadow SSDT
  16. SpringBoot移除内置Tomcat
  17. 10_07【Java】Map集合详述
  18. MySQL建表1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL
  19. 笔记本外接二个显示器
  20. 流动性风险与次贷危机

热门文章

  1. 解决笔记本装linux后触摸板无法用的问题
  2. 定位python内存泄漏问题
  3. php ppt read_PHP生成PPT
  4. Log4j2高危漏洞CNVD-2021-95914分析复现修复
  5. OSChina 周四乱弹 —— 下班等通知,我张北华同意后才下班
  6. mac挂载ntfs格式移动硬盘
  7. 我国成功研制出巨型计算机,1989年11月17日 我国首台小巨型电子计算机研制成功...
  8. 不止Alexa和AWS,揭秘亚马逊人工智能发展史
  9. Android Studio 加载arr文件.arr文件
  10. H - Streets of Working Lanterns Gym - 101149H -括号匹配-栈模拟