我的编程空间,编程开发者的网络收藏夹
学习永远不晚

安卓开发——微信UI界面

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

安卓开发——微信UI界面

一、功能说明

本次作业开发的是类似微信的主页面框架,UI布局为上中下结构,用户可通过点击底部导航栏切换板块内容,其中共包含四个板块,分别是“微信”、“通讯录”、“发现”和“我的”。

二、设计流程

1 页面设计

微信的界面布局分为上中下三个部分。

(1)第一部分,主要是显示界面的标题。

(2)第二部分,主要是“微信”、“通讯录”、“发现”和“我的”四个板块的具体内容。

(3)第三部分,主要是“微信”、“通讯录”、“发现”和“我的”四个板块的切换控件。

2 功能设计

实现点击底部控件切换到对应的板块界面。

(1)创建Fragment类及其对应的layout文件

(2)创建FragmentManager管理Fragment,以及FragmentTransaction

(3)设置监听

(4)设置控件被点击后的响应事件

三、核心代码详解

1 界面布局代码

1.1 总体布局 activity_main.xml

   ·                    

标签可以实现在一个layout文件中引用另一个layout文件的布局

此处则是在activity_main.xml文件中引入了top.xml文件和bottom.xml文件的布局

在FrameLayout中设置属性layout_weight=1可将FrameLayout填满界面中除了top和bottom的中间部分。

1.2 界面顶部 top.xml

1.3 界面中部

        

该部分的布局文件共有四个,分别是fra_xx.xml、fra_lx.xml、fra_fx.xml、fra_wd.xml

代码大致相同,只需修改对应的Fragment类和组件id即可

1.4 界面底部 bottom.xml

                    

 界面底部的布局稍微复杂一点,布局解释如下:

(1)最外层是一个水平的LinearLayout,使得放在里面的组件可水平放置

(2)第二层是四个垂直的LinearLayout,使得放在里面的组件可垂直放置,并且通过layout_weight将此四个LinearLayout组件均分其父布局,即每个组件占父布局的1/4。

(3)对于(2)中的每个LinearLayout都有一个ImageView和TextView,详细代码如上。

另外,ImageView组件所使用的图片需存放在/res/drawable文件夹中。

 

2 点击按钮跳转板块功能代码

Fragmentxx、Fragmentlx、Fragmentfx和Fragmentwd类的主要代码:

public class Fragmentxx extends Fragment {    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        // Inflate the layout for this fragment        return inflater.inflate(R.layout.fra_xx, container, false);    }}

 Fragmentlx、Fragmentfx和Fragmentwd与上述部分的代码基本一致,主要区别在于R.layout._____  部分需对应其对应的layout文件

MainActivity类的主要代码:

 FragmentManager

FragmentManager manager;manager=getSupportFragmentManager();

Fragment对象

Fragment fragment1,fragment2,fragment3,fragment4;fragment1=new Fragmentxx();fragment2=new Fragmentlx();fragment3=new Fragmentfx();fragment4=new Fragmentwd();

 LinearLayout对象,对应的id是bottom.xml文件中的第二层LinearLayout的id

LinearLayout linearLayout1,linearLayout2,linearLayout3,linearLayout4;linearLayout1=findViewById(R.id.l_xiaoxi);linearLayout2=findViewById(R.id.l_lianxi);linearLayout3=findViewById(R.id.l_faxian);linearLayout4=findViewById(R.id.l_wode);

Transaction对象

    FragmentTransaction transaction;    //初始化,将所有fragment都添加到界面中部板块    //对应的id是activity_main.xml中的Fragment的id    public void inital(){        transaction=manager.beginTransaction()                .add(R.id.content,fragment1)                .add(R.id.content,fragment2)                .add(R.id.content,fragment3)                .add(R.id.content,fragment4);        transaction.commit();    }    //将所有的fragment隐藏起来    public void fragmentHide(){        transaction=manager.beginTransaction()                .hide(fragment1)                .hide(fragment2)                .hide(fragment3)                .hide(fragment4);        transaction.commit();    }    //将指定的fragment进行展示    public void fragmentShow(Fragment fragment){        transaction=manager.beginTransaction().show(fragment);        transaction.commit();    }

从上述代码中可以看到最终四个板块的布局文件时如何添加到主布局中间的空板块的:

(1)首先通过Fragmentxx类绑定板块对应的布局文件fra_xx.xml;

(2)然后在MainActivity类中创建Fragmentxx对象;

(3)最后通过Transaction将Fragmentxx对象添加到主布局中间的空板块。

 图片和文字颜色的改变

//定义组件对应的变量TextView t1,t2,t3,t4;ImageView im1,im2,im3,im4;t1=findViewById(R.id.text_xiaoxi);t2=findViewById(R.id.text_lianxi);t3=findViewById(R.id.text_faxian);t4=findViewById(R.id.text_wode);im1=findViewById(R.id.image_xiaoxi);im2=findViewById(R.id.image_lianxi);im3=findViewById(R.id.image_faxian);im4=findViewById(R.id.image_wode);
    //将指定图片和文字设置为灰色    public void defaultImagendText(){        im1.setImageResource(R.drawable.xiaoxi);        im2.setImageResource(R.drawable.lianxi);        im3.setImageResource(R.drawable.faxian);        im4.setImageResource(R.drawable.wode);        t1.setTextColor(Color.parseColor("#8a8a8a"));        t2.setTextColor(Color.parseColor("#8a8a8a"));        t3.setTextColor(Color.parseColor("#8a8a8a"));        t4.setTextColor(Color.parseColor("#8a8a8a"));    }

 监听设置如下:

public class MainActivity extends AppCompatActivity implements View.OnClickListener
linearLayout1.setOnClickListener(this);linearLayout2.setOnClickListener(this);linearLayout3.setOnClickListener(this);linearLayout4.setOnClickListener(this);

 点击按钮后的响应事件,响应逻辑如下:

(1)点击后,先将所有图片和文字变成灰色,中间板块的内容也进行隐藏

(2)通过监听获取组件id

(3)根据获取得到的id,展示对应的板块,并且被点击的图片和文字颜色变绿

    public void onClick(View v) {        fragmentHide();        defaultImagendText();        switch (v.getId())        {            case R.id.l_xiaoxi:                fragmentShow(fragment1);                im1.setImageResource(R.drawable.xiaoxi_click);                t1.setTextColor(Color.parseColor("#04BE02"));                break;            case R.id.l_lianxi:                fragmentShow(fragment2);                im2.setImageResource(R.drawable.lianxi_click);                t2.setTextColor(Color.parseColor("#04BE02"));                break;            case R.id.l_faxian:                fragmentShow(fragment3);                im3.setImageResource(R.drawable.faxian_click);                t3.setTextColor(Color.parseColor("#04BE02"));                break;            case R.id.l_wode:                fragmentShow(fragment4);                im4.setImageResource(R.drawable.wode_click);                t4.setTextColor(Color.parseColor("#04BE02"));                break;        };    }

四、总结

1 运行结果展示

   

2 小结

通过本次作业练习掌握了一些安卓UI界面开发的基础知识,一开始由于组件有点多加上自己还不是很熟悉安卓UI界面的一些布局属性所以还有点云里雾里,在博客中对这些代码又重新梳理了一遍,感觉才好了些,总之收获还是很大的!

五、源码开源地址

HW_WeChat: Android 学习 (gitee.com)

来源地址:https://blog.csdn.net/qq_37766298/article/details/129327674

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

安卓开发——微信UI界面

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android Studio微信界面基础开发

Android Studio微信界面基础开发 基础页面开发 新建页面并编写#第一个框架处理,分为top,content,bottom事件处理函数MainActivity.java package com.example.wexin; imp
2022-06-06

Android开发 -- UI界面之threme和style

Android系统的themes.xml和style.xml(位于\base\core\res\res\values\)包含了很多系统定义好的style,建议在里面挑个合适的,然后再继承修改。 一、threme android中的主题一般用
2022-06-06

Android UI设计与开发之ViewPager仿微信引导界面以及动画效果

基于前两篇比较简单的实例做铺垫之后,这一篇我们来实现一个稍微复杂一点的引导界面的效果,当然也只是稍微复杂了一点,对于会的人来说当然还是so easy!正所谓会者不难,难者不会,大概说的就是这个意思了吧。好的,话不多说,回归正题。这篇要实现的
2023-05-30

如何使用jQuery UI库开发Web界面

这篇文章主要讲解了“如何使用jQuery UI库开发Web界面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用jQuery UI库开发Web界面”吧!一.jQuery UIjQuery
2023-07-04

Android Studio移动互联网开发之仿微信主界面页面切换

实践第一课–AS仿微信主界面 — Android Studio仿微信主界面页面切换 源码链接:https://gitee.com/huo_shui_three_thousand/WeChatVIew AS仿微信主界面 首先明确一下我们想要的
2022-06-06

Android界面效果UI开发资料汇总(附资料包)

简介: Android界面效果UI开发资料汇总 1. Android_UI开发专题.rar 2. android界面效果全汇总.rar 对于Android平台的资源类android.content.res.Resources可能很多网友比较
2022-06-06

Android开发基础 - 使用XML布局文件控制UI界面(桌面台球游戏界面)

Android开发基础 - 使用XML布局文件控制UI界面 第一步,打开android studio,点击File->new ->new module.进入如下界面,选择第一个手机和平板应用,点击next。其中第1行代码为居中显示,第二行为
2022-06-06

微信小程序如何设置基本的页面样式,做出用户界面UI

这篇文章主要介绍了微信小程序如何设置基本的页面样式,做出用户界面UI。如何为这个页面添加样式,使它看上去更美观,教大家写出实际可以使用的页面。
2022-12-03

Web界面开发工具Kendo UI是怎样自适应渲染

Web界面开发工具Kendo UI是怎样自适应渲染,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。自适应渲染Kendo UI for jQuery通过支持自适应增
2023-06-19

解析Android开发优化之:对界面UI的优化详解(一)

通常,在这个页面中会用到很多控件,控件会用到很多的资源。Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等,这些都可以在应用程序中直接使用。这样做的好处很多,既可以减少内存的使用,又可以减少部分工作量,也可
2022-06-06

解析Android开发优化之:对界面UI的优化详解(二)

如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差;另一个是修改起来比较麻烦,对后期的修改和维护非常不利。所以,一般情况下,我们需要把相同布局的代码单独写成一个模块,然后在用到的时候,可以通过
2022-06-06

解析Android开发优化之:对界面UI的优化详解(三)

有时候,我们的页面中可能会包含一些布局,这些布局默认是隐藏的,当用户触发了一定的操作之后,隐藏的布局才会显示出来。比如,我们有一个Activity用来显示好友的列表,当用户点击Menu中的“导入”以后,在当前的Activity中才会显示出一
2022-06-06

Android 开发中如何模仿一个微信拍摄和图像选择界面

这篇文章将为大家详细讲解有关Android 开发中如何模仿一个微信拍摄和图像选择界面,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 插件运行后的画面如下:下面这张图对图像进行筛选,根据照片产
2023-05-31

美化UI界面的必备技巧:CSS开发项目经验分享

美化UI界面的必备技巧:CSS开发项目经验分享在当今数字化时代,用户界面(UI)成为了软件和网站开发中至关重要的一部分。一个充满吸引力且易于使用的用户界面可以增加用户对产品或服务的好感,并提升用户体验。而CSS作为一种用于定义网页样式的技术
美化UI界面的必备技巧:CSS开发项目经验分享
2023-11-02

美化UI界面的必备技能:CSS开发项目经验大揭秘

在当今互联网时代,用户界面(UI)设计成为了吸引用户的重要因素之一。一个美观、直观、易用的用户界面是吸引用户和提升用户体验的关键。而CSS(层叠样式表)的开发技能在美化UI界面中起着至关重要的作用。通过合理运用CSS,我们可以实现界面的各种
美化UI界面的必备技能:CSS开发项目经验大揭秘
2023-11-03

Android 开发 使用WebUploader解决安卓微信浏览器上传图片中遇到的bug

先给大家分析下微信浏览器上传图片bug的原因 微信在新版本中采用的是自己的X5内核浏览器,而在较老的版本中还有可能是安卓的原生浏览器。具体的环境我也不太了解,但是经过实际多台安卓机型的测试,我采取的方案可以基本确保在安卓机中微信浏览器的成功
2022-06-06

打开微信web开发者工具后卡在加载项目的界面不动如何解决

今天小编给大家分享一下打开微信web开发者工具后卡在加载项目的界面不动如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
2023-06-26

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录