用AS实现微信界面设计


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 设计目标
  • 一、结果展示
  • 二、top.xml
  • 三、bottom.xml
  • 四、4个fragment.xml
  • 五、activity_main.xml
  • 六、java文件
  • 总结
  • 仓库


设计目标

提示:这里可以添加本文要记录的大概内容:

通过使用AS控件结合虚拟机来实现微信界面设计,使用控件有TextView,FrameLayout,Linerlayout,imageView,并通过fragment.java(4个java文件对应4个fragment界面),MainActivity.java来实现。


提示:以下是本篇文章正文内容,下面案例可供参考

一、结果展示

bottom.xml
在这里插入图片描述
chat.xml(剩余3个fragment.xml类似)
在这里插入图片描述
top.xml
在这里插入图片描述

activity_main.xml
在这里插入图片描述
虚拟机上结果
在这里插入图片描述

二、top.xml

微信界面顶部标题

代码如下(示例):

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_height="match_parent"><TextViewandroid:id="@+id/textView5"android:layout_width="414dp"android:layout_height="57dp"android:background="#426F42"android:orientation="vertical"android:text="微信界面设计"android:gravity="center"android:textColor="#ffffff"app:layout_constraintTop_toTopOf="parent"tools:layout_editor_absoluteX="2dp" />
</androidx.constraintlayout.widget.ConstraintLayout>

三、bottom.xml

在Linerlayout下添加4个linerlayout布局对应的4个textview

代码如下(示例):

<?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:id="@+id/Linerlayout"android:layout_width="match_parent"android:layout_height="100dp"android:background="@color/white"tools:context=".MainActivity"><LinearLayoutandroid:id="@+id/linearLayout1"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:orientation="vertical"><ImageViewandroid:id="@+id/imageView5"android:layout_width="match_parent"android:layout_height="51dp"app:srcCompat="@android:drawable/sym_action_chat" /><TextViewandroid:id="@+id/textView2"android:layout_width="103dp"android:layout_height="63dp"android:gravity="center"android:text="聊天"android:textColor="@color/black"android:textSize="24sp" /></LinearLayout><LinearLayoutandroid:id="@+id/linearLayout2"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:orientation="vertical"><ImageViewandroid:id="@+id/imageView6"android:layout_width="match_parent"android:layout_height="wrap_content"app:srcCompat="@android:drawable/btn_radio" /><TextViewandroid:id="@+id/textView3"android:layout_width="match_parent"android:layout_height="65dp"android:gravity="center"android:text="看点"android:textColor="@color/black"android:textSize="24sp" /></LinearLayout><LinearLayoutandroid:id="@+id/linearLayout3"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:orientation="vertical"><ImageViewandroid:id="@+id/imageView7"android:layout_width="103dp"android:layout_height="50dp"app:srcCompat="@android:drawable/ic_menu_add" /><TextViewandroid:id="@+id/textView4"android:layout_width="match_parent"android:layout_height="63dp"android:gravity="center"android:text="设置"android:textColor="@color/black"android:textSize="24sp" /></LinearLayout><LinearLayoutandroid:id="@+id/linearLayout4"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:orientation="vertical"><ImageViewandroid:id="@+id/imageView8"android:layout_width="match_parent"android:layout_height="48dp"app:srcCompat="@android:drawable/sym_action_call" /><TextViewandroid:id="@+id/textView"android:layout_width="match_parent"android:layout_height="66dp"android:gravity="center"android:text="联系人"android:textColor="@color/black"android:textSize="24sp" /></LinearLayout></LinearLayout>

四、4个fragment.xml

代码如下(示例):
聊天界面

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"tools:context=".Fragment1"><!-- TODO: Update blank fragment layout --><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:gravity="center"android:textSize="50sp"android:text="这是聊天界面" /></FrameLayout>

看点界面

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"tools:context=".Fragment2"><!-- TODO: Update blank fragment layout --><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:textSize="50sp"android:layout_weight="1"android:text="这是看点界面" /></FrameLayout>

设置界面

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"tools:context=".Fragment3"><!-- TODO: Update blank fragment layout --><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:textSize="50sp"android:text="这是设置界面" /></FrameLayout>

联系人界面

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"tools:context=".Fragment4"><!-- TODO: Update blank fragment layout --><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:textSize="50sp"android:text="这是联系界面" /></FrameLayout>

五、activity_main.xml

将top.xml,bottom.xml和4个fragment.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:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><includelayout="@layout/top"android:layout_width="match_parent"android:layout_height="wrap_content" /><FrameLayoutandroid:id="@+id/id_content"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"></FrameLayout><includelayout="@layout/bottom"android:gravity="bottom" /></LinearLayout>

六、java文件

fragment.java文件(剩余3个类似)

package com.example.myapplication;import android.os.Bundle;import android.app.Fragment;import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;public class Fragment1 extends Fragment {public Fragment1() {// Required empty public constructor}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentreturn inflater.inflate(R.layout.chat, container, false);}
}

MainActivity.java文件

package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {private Fragment fragment1=new Fragment1();private Fragment fragment2=new Fragment2();private Fragment fragment3=new Fragment3();private Fragment fragment4=new Fragment4();private FragmentManager fragmentManager;private LinearLayout linearLayout1,linearLayout2,linearLayout3,linearLayout4;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);linearLayout1=findViewById(R.id.linearLayout1);linearLayout2=findViewById(R.id.linearLayout2);linearLayout3=findViewById(R.id.linearLayout3);linearLayout4=findViewById(R.id.linearLayout4);linearLayout1.setOnClickListener(this);linearLayout2.setOnClickListener(this);linearLayout3.setOnClickListener(this);linearLayout4.setOnClickListener(this);initFragment();}private void initFragment(){fragmentManager=getFragmentManager();FragmentTransaction transaction=fragmentManager.beginTransaction();transaction.add(R.id.id_content,fragment1);transaction.add(R.id.id_content,fragment2);transaction.add(R.id.id_content,fragment3);transaction.add(R.id.id_content,fragment4);hideFragment(transaction);transaction.commit();}private void hideFragment(FragmentTransaction transaction){transaction.hide(fragment1);transaction.hide(fragment2);transaction.hide(fragment3);transaction.hide(fragment4);}private void background(View v) {switch (v.getId()) {case R.id.linearLayout1:linearLayout1.setBackgroundColor(Color.parseColor("#426F42"));break;case R.id.linearLayout2:linearLayout2.setBackgroundColor(Color.parseColor("#426F42"));break;case R.id.linearLayout3:linearLayout3.setBackgroundColor(Color.parseColor("#426F42"));break;case R.id.linearLayout4:linearLayout4.setBackgroundColor(Color.parseColor("#426F42"));break;default:break;}}private void backgroundreturn(View v) {switch (v.getId()) {case R.id.linearLayout1:linearLayout1.setBackgroundColor(Color.parseColor("#426F42"));break;case R.id.linearLayout2:linearLayout2.setBackgroundColor(Color.parseColor("#426F42"));break;case R.id.linearLayout3:linearLayout3.setBackgroundColor(Color.parseColor("#426F42"));break;case R.id.linearLayout4:linearLayout4.setBackgroundColor(Color.parseColor("#426F42"));break;default:break;}}private void showfragmnet(int i) {FragmentTransaction transaction=fragmentManager.beginTransaction();hideFragment(transaction);switch (i){case 0:transaction.show(fragment1);background(linearLayout1);backgroundreturn(linearLayout3);backgroundreturn(linearLayout2);backgroundreturn(linearLayout4);break;case 1:transaction.show(fragment2);background(linearLayout2);backgroundreturn(linearLayout4);backgroundreturn(linearLayout1);backgroundreturn(linearLayout3);break;case 2:transaction.show(fragment3);background(linearLayout3);backgroundreturn(linearLayout4);backgroundreturn(linearLayout2);backgroundreturn(linearLayout1);break;case 3:transaction.show(fragment4);background(linearLayout4);backgroundreturn(linearLayout1);backgroundreturn(linearLayout2);backgroundreturn(linearLayout3);break;default:break;}transaction.commit();}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.linearLayout1:showfragmnet(0);break;case R.id.linearLayout2:showfragmnet(1);break;case R.id.linearLayout3:showfragmnet(2);break;case R.id.linearLayout4:showfragmnet(3);break;default:break;}}}

总结

通过这次实验,我学会了如何布局和使用AS中的相关空间,以及结合所学的java知识来编写,还学会了使用提示器通过提示器来快速使用所需要的函数。在编写MainActivity.java时遇到了些许问题,比如如何实现当点击一个控件时只显示该控件的界面,这里需要编写隐藏函数,当点击事件发生时隐藏其余界面。通过这次实验,知道了自己的不足之处要想有进步则需花时间认真完成。

仓库

https://gitee.com/liupeng321/gitee-liupeng

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/53082.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

仿QQ聊天软件(登录界面、好友界面、聊天界面)-Java(Swing、Socket)

文章目录 一、项目结构二、项目功能三、制作界面&#xff08;一&#xff09;、登录界面的制作&#xff08;二&#xff09;、好友列表界面&#xff08;三&#xff09;、聊天界面 四、制作服务器五、设计通信协议六、项目缺点 学习了socket通信后&#xff0c;就想来制作一个类似Q…

Android仿微信气泡聊天界面设计

微信的气泡聊天是仿iPhone自带短信而设计出来的&#xff0c;不过感觉还不错可以尝试一下仿着微信的气泡聊天做一个Demo&#xff0c;给大家分享一下&#xff01;效果图如下&#xff1a; 气泡聊天最终要的是素材&#xff0c;要用到9.png文件的素材&#xff0c;这样气泡会随着聊天…

计算机系统大作业

摘 要 尽管hello程序非常简单&#xff0c;但是为了让它实现运行&#xff0c;系统的每个主要组成部分都需要协调工作&#xff0c;本篇论文就是解释说明在系统上执行hello程序时&#xff0c;系统发生了什么以及为什么会这样。 我们通过跟踪hello程序的生命周期开始系统讲解——…

程序人生-Hello’s P2P

计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 未来技术 学   号 2021112807 班 级 21WL021 学 生 马铭杨 指 导 教 师 史先俊 …

Google reCAPTCHA ----------验证码

现有验证码的产品形态调研范围如下&#xff0c;基本涵盖了比较主流的验证码平台&#xff1a; Google reCAPTCHA极验阿里云腾讯云点触网易易盾螺丝帽FunCaptcha 产品背景 ‍‍reCAPTCHA起初是由CMU&#xff08;卡耐基梅隆大学&#xff09;设计&#xff0c;将OCR&#xff08;光…

关于captcha验证码演示

转载&#xff1a;https://blog.csdn.net/dayonglove2018/article/details/106612549 import com.wf.captcha.SpecCaptcha; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springfr…

使用reCAPTCHA实现验证码

文章目录 HTML代码JS代码Java代码项目开源地址参考资料 HTML代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>登录</title><link rel"stylesheet" type"text/css" href"css/json-v…

手把手教你验证码检验的登录

在网站实际应用过程中&#xff0c;为了防止网站登录接口被机器人轻易地使用&#xff0c;产生一些没有意义的用户数据&#xff0c;所以&#xff0c;采用验证码进行一定程度上的拦截&#xff0c;当然&#xff0c;我们采用的还是一个数字与字母结合的图片验证码形式&#xff0c;后…

如何识别高级的验证码

http://sebug.net/paper/pst_WebZine/pst_WebZine_0x02/html/PSTZine_0x02_0x09.html Ph4nt0m Security TeamIssue 0x02, Phile #0x09 of 0x0A|---------------------------------------------------------------------------| |-----------------------[ 如何识别高级的验证码…

hcaptcha 我是人类验证码怎么跳过怎么验证自动识别

相信这个验证码很多人都见过&#xff0c;这个叫hcaptcha验证码 在网页上偶尔出现&#xff0c;提示需要你证明“我是人类” 这种验证码与谷歌的reCaptcha有异曲同工之处&#xff0c;但是其实hcaptcha与recaptcha是完全不同的产品&#xff0c;不是同一个公司出品的。 这种hcapt…

手把手教你识别FunCaptcha验证码

今天&#xff0c;我们将专注于FunCaptcha&#xff0c;这是一种独特而具有挑战性的CAPTCHA类型&#xff0c;在整个网络上越来越流行。我们将深入探讨FunCaptcha是什么&#xff0c;不同类型的FunCaptcha挑战&#xff0c;如何使用CapSolver解决它们等等。 什么是FunCaptcha&#…

基于openai chatgpt和embeddings制作私有知识库聊天机器人

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、原理、流程二、制作预料库三、制作问答功能总结 如果有问题可以联系我**&#xff1a;https://gitee.com/xiaoyuren/gpt3 前言 在当今信息爆炸的时代&#…

基于 Quivr 搭建个人知识库

目录 Quivr介绍 Quivr特性 Quivr演示 Demo with GPT3.5: Demo of the new version&#xff1a; Quivr实战 Quiv 使用的主要技术 Quiv 实践依赖 创建Supabase项目 部署Quiv项目 第一步&#xff1a;现在源码 第二步&#xff1a;设置环境变量 第三步&#xff1a;执行sql 第…

标书打印分册小技巧

标书打印出来后&#xff0c;一般都有很多本&#xff0c;去打印店胶装标书时&#xff0c;需要把每一本标书分出来&#xff0c;黑帽大师用便签纸就能方便的分出标书。 把便签纸贴在每本标书的最后一页上&#xff0c;这样就能方便的分出每一本了。

学校计算机维护投标书,信息化系统硬件及应用系统安全运维服务投标书范本

这是一份信息化系统硬件及应用系统安全运维服务投标书范本&#xff0c;含运维服务方案&#xff0c;word格式&#xff0c;可编辑&#xff0c;有需要的朋友可以参考学习。 信息化系统硬件及应用系统安全运维服务 本次服务范围为XX局信息化系统硬件及应用系统&#xff0c;各类软硬…

招投标小程序开发功能及源码

一般获取招投标信息的渠道主要有三种&#xff0c;一&#xff0c;来源于官方、正规的政府网站、公共资源交易中心等&#xff1b;二&#xff0c;能提供针对性的招投标信息平台&#xff1b;三是通过个人的人脉资源来获取项目信息。今天我们重点讲下招投标平台怎么运营的&#xff0…

python制作标书_爬取比比网中标标书,并保存为PDF格式文件

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 以下文章来源于CSDN&#xff0c;作者嗨学编程 python开发环境 python 3.6 pycharm import requests import parsel import pdfkit import time 相关模块pip安装即可 …

python制作标书_Python爬取比比网中标标书并保存成PDF格式

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 python开发环境 python 3.6 pycharm requests parsel pdfkit time 相关模块pip安装即可 目标网页分析 1、先从列表页中获取详情页的URL地址 是静态网站,可以直接请求…

第一次写标书

由于工作需要开始写起标书。前后大概花了五天时间。 经过自我学习和老师指导&#xff0c;知道了一件事情&#xff0c;不管做什么&#xff0c;其实都是能够有所学习的。 而学习&#xff0c;为了有所收获&#xff0c;需要用心再去体会每一个过程&#xff0c;并记录下来&#xf…

小程序投标书_快来学习招投标小技巧!中标率提高50%(建议收藏)

99%的投标人使用【建企同盟APP】都中标了&#xff01; 建企同盟APP 招标信息不遮挡 订阅推送零费用 从保证中标的因素来看&#xff0c;三个因素最为重要&#xff0c;首先是关系&#xff0c;其次是能力&#xff0c;最后才是价格。关系指与用户的关系&#xff0c;既有最终用户又包…