Android简易微信界面

专选课移动互联网开发的第一次作业,利用Android Studio进行了简易Android微信界面的搭建
完整项目代码

  1. 界面样式展示:
  2. 界面xml源码

主界面xml源码

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

button xml源码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:baselineAligned="false"android:background="@drawable/bottom_bar"android:layout_height="100dp"><LinearLayoutandroid:id="@+id/id_tab_wechat"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:background="@drawable/bottom"android:orientation="vertical"><ImageButtonandroid:id="@+id/id_tab_wechat_image"android:layout_width="match_parent"android:layout_height="53dp"android:background="#000000"android:contentDescription="@string/app_name"android:clickable="false"android:src="@drawable/tab_weixin_pressed" /><TextViewandroid:id="@+id/id_tab_wechat_text"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="微信"android:clickable="false"android:textColor="#ffffff"android:textSize="25dp" /></LinearLayout><LinearLayoutandroid:id="@+id/id_tab_friend"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:background="@drawable/bottom_bar"android:orientation="vertical"><ImageButtonandroid:id="@+id/id_tab_friend_image"android:layout_width="match_parent"android:layout_height="53dp"android:background="#000000"android:contentDescription="@string/app_name"android:clickable="false"android:src="@drawable/tab_find_frd_normal" /><TextViewandroid:id="@+id/id_tab_friend_text"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="朋友"android:textColor="#ffffff"android:clickable="false"android:textSize="25dp" /></LinearLayout><LinearLayoutandroid:id="@+id/id_tab_contact"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:background="@drawable/bottom_bar"android:orientation="vertical"><ImageButtonandroid:id="@+id/id_tab_contact_image"android:layout_width="match_parent"android:layout_height="53dp"android:background="#000000"android:contentDescription="@string/app_name"android:clickable="false"android:src="@drawable/tab_address_normal" /><TextViewandroid:id="@+id/id_tab_contact_text"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="通讯录"android:textColor="#ffffff"android:clickable="false"android:textSize="25dp" /></LinearLayout><LinearLayoutandroid:id="@+id/id_tab_settings"android:layout_width="0dp"android:layout_height="87dp"android:layout_weight="1"android:background="@drawable/bottom_bar"android:orientation="vertical"><ImageButtonandroid:id="@+id/id_tab_settings_image"android:layout_width="match_parent"android:layout_height="53dp"android:background="#000000"android:contentDescription="@string/app_name"android:clickable="false"android:src="@drawable/tab_settings_normal" /><TextViewandroid:id="@+id/id_tab_settings_text"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:text="设置"android:clickable="false"android:textColor="#ffffff"android:textSize="25dp" /></LinearLayout>
</LinearLayout>

TOP标题源码

<?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="65dp"android:gravity="center"android:background="#000000"android:orientation="vertical"><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center_horizontal"android:text="@string/app_name"android:textColor="#ffffff"android:textSize="20sp" />
</LinearLayout>
  1. 后台JAVA源码
    分别创建四个页面的fragment
package com.example.mywechat;import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;import android.app.Fragment;/*** A simple {@link Fragment} subclass.*/
public class contactFragment extends Fragment {public contactFragment() {// Required empty public constructor}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentreturn inflater.inflate(R.layout.tab03, container, false);}}

利用main_activity实现fragment之间的切换

package com.example.mywechat;import android.app.Activity;
import android.os.Bundle;
import android.view.SurfaceControl;
import android.view.Window;
import android.view.View;
import android.app.FragmentManager;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.widget.ImageButton;
import android.widget.LinearLayout;public class MainActivity extends Activity implements View.OnClickListener{private Fragment mTab01=new WechatFragment();private Fragment mTab02=new friendFragment();private Fragment mTab03=new contactFragment();private Fragment mTab04=new settingsFragment();private FragmentManager fm;LinearLayout mTabWechat;LinearLayout mTabFriend;LinearLayout mTabContact;LinearLayout mTabSettings;ImageButton mimgWechat;ImageButton mimgFriend;ImageButton mimgContact;ImageButton mimgSettings;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);initFragment();initView();selectfragment(0);initEvent();}private void initEvent(){mTabWechat.setOnClickListener(this);mTabFriend.setOnClickListener(this);mTabContact.setOnClickListener(this);mTabSettings.setOnClickListener(this);}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 initView(){mTabWechat=findViewById(R.id.id_tab_wechat);mTabFriend = findViewById(R.id.id_tab_friend);mTabContact = findViewById(R.id.id_tab_contact);mTabSettings = findViewById(R.id.id_tab_settings);mimgWechat = findViewById(R.id.id_tab_wechat_image);mimgFriend = findViewById(R.id.id_tab_friend_image);mimgContact = findViewById(R.id.id_tab_contact_image);mimgSettings = findViewById(R.id.id_tab_settings_image);}private void hideFragment(FragmentTransaction transaction){transaction.hide(mTab01);transaction.hide(mTab02);transaction.hide(mTab03);transaction.hide(mTab04);}private void resetImgs(){mimgWechat.setImageResource(R.drawable.tab_weixin_normal);mimgFriend.setImageResource(R.drawable.tab_find_frd_normal);mimgContact.setImageResource(R.drawable.tab_address_normal);mimgSettings.setImageResource(R.drawable.tab_settings_normal);}private void selectfragment(int i){FragmentTransaction transaction=fm.beginTransaction();hideFragment(transaction);switch (i){case 0:transaction.show(mTab01);mimgWechat.setImageResource(R.drawable.tab_weixin_pressed);break;case 1:transaction.show(mTab02);mimgFriend.setImageResource(R.drawable.tab_find_frd_pressed);break;case 2:transaction.show(mTab03);mimgContact.setImageResource(R.drawable.tab_address_pressed);break;case 3:transaction.show(mTab04);mimgSettings.setImageResource(R.drawable.tab_settings_pressed);break;default:break;}transaction.commit();}public void onClick(View v){resetImgs();switch (v.getId()){case R.id.id_tab_wechat:selectfragment(0);break;case R.id.id_tab_friend:selectfragment(1);break;case R.id.id_tab_contact:selectfragment(2);break;case R.id.id_tab_settings:selectfragment(3);break;}}
}
  1. 作业心得
    根据老师课程内容完成了代码的复现,理解了后台代码利用fragment进行切换以及根据点击事件更改图片样式的思路,但是对于布局的xml代码有些地方比较模糊,在布局方面耗费了一些时间,例如设置weight=1,height=0来调节布局的技巧就不能很好的理解。还是需要更多的项目进行锻炼,不断摸索。

Android简易微信界面相关推荐

  1. Android studio设计一个简易微信界面

    一.设计要求及实现构想 1.设计一个简易微信界面框架,包含至少4个tab页面(我设计的4个分别为message.contact.find.config),要求能实现四个页面之间的点击切换. 2.首先分 ...

  2. 使用AS自制简易微信界面

    文章目录 一.设计目标 二.功能说明 三.代码解析 1. layout文件夹 头部标签栏 底部(四个按钮) 中间信息栏 主界面布局 2. drawable文件夹 3.java文件夹 Fragment ...

  3. Android之微信界面设计

    Android Studio 学习之实现微信首页界面 一.界面布局分析. 首先进行界面布局,看需要几个.xml文件. 1.top.xml对微信界面的顶部进行设计 2.bottom.xml对于微信界面的 ...

  4. Android studio 微信界面设计

    一.微信界面的功能 1.可展示出四个可切换界面:微信.联系人.朋友圈.设置: 2.上方栏标题居中,界面中间显示内容,内容随下方栏的选择而切换,下方栏可点击切换,点击过的界面的图标为绿色,没有点击的界面 ...

  5. Android Studio 微信界面开发——主页面框架

    目录 功能说明 设计流程 核心代码详解 总结 源码开源地址(gitee) 一.功能说明 类似微信界面的设计.本次主要进行初步设计,完成微信页面的基础框架,即当点击下方按钮时,页面随之转换,分别包括&q ...

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

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

  7. Android 实现微信界面

    设计思路: 1)程序总体使用TabHost实现微信界面的四个模块,在每一个tab选项布局里使用自定义的ListView,添加ImageView和TextView控件,显示通讯录列表信息. 2)自定义L ...

  8. Android Studio制作简易微信界面

    文章目录 制作要求 一.top,buttom页面制作 二.四个tab页面和activity_main页面制作 1.四个tab页面 2.activity_main页面 三 . 五个java文件 制作要求 ...

  9. Android仿微信界面

    效果图 原理介绍 1.先绘制一个颜色(例如:粉红) 2.设置Mode=DST_IN 3.绘制我们这个可爱的小机器人 回答我,显示什么,是不是显示交集,交集是什么?交集是我们的小机器人的非透明区域,也就 ...

最新文章

  1. WAIC汇聚全球顶级科学家,畅谈人工智能的未来挑战与突破
  2. ACM-最短路之中的一个个人的旅行——hdu2066
  3. CAN'T TAKE MY EYES OF YOU
  4. win2000server IIS和tomcat5多站点配置
  5. java--自动装箱,拆箱
  6. MPLS-L3×××中的公网访问
  7. 用户密码重设对EFS的影响
  8. Java抓取淘宝/天猫商品详情 1
  9. EMC相关标准 GB IEC EN对照(持续添加中……)
  10. vs番茄助手的方便功能和便捷快捷键介绍
  11. nbu备份mysql_NBU之 SQL 的备份和恢复
  12. Maven的下载与配置(包含阿里云镜像配置)
  13. DRM-X 4.0加密保护与Widevine DRM平台的区别
  14. 云服务器我的数据保存在哪个文件夹,云服务器存储在哪里
  15. JavaScript复制内容到剪贴板 1
  16. Windows杀死Tomcat进程
  17. 关于Html class id 命名规范
  18. 刷cadn浏览量阅读量第二中方法
  19. Lenovo X61鸟枪换炮之更换大硬盘
  20. java小程序贪吃蛇代码_微信小程序Demo之贪食蛇

热门文章

  1. 根据经纬度,获取方圆10公里内的数据
  2. 调试笔记——《一起做RGB-D SLAM 》
  3. 几款好用的Markdown 写作工具推荐(下)
  4. 宁波区块链联盟正式成立 inTouch社交能否成为区块链领域的又一匹黑马?
  5. C# 委托(同步调用、异步调用、异步回调)
  6. 知乎上关于倒金字塔体的一片文章
  7. 拼多多 2019校园招聘 正式批笔试-2018.8.28
  8. php对字节base64编码,Base64编码包含空字节的输入
  9. /travel/src/main/java/cn/itcast/travel/util/MailUtils.java:[1,1] 非法字符:
  10. 【玩点不一样】你用别人CDN资源多了,有没有想过自己也搭建一个CDN玩玩?