微信的主页面框架

功能说明

界面的样式参考微信打开后的界面

1、展示出微信,通讯录、发现,我的四个主界面;

2、在四个主界面之间自由切换;

3、界面上方栏有标题居中,界面中间显示内容,内容随下方栏的选择而切换,界面下方栏分成四个小板块可点击切换。

设计流程

先设计页面,主页面分为三个部分,顶部(top)、内容(content)、底部(bottom)。

顶部和底部可以用基本的LinearLayout进行线性布局。

在res.layout包里new一个bottom.xml文件,来写底部的linearLayout。

在res.layout包里new一个top.xml文件,在其顶部的linearLayout中写一个TextView,内容为“微信字体居中”

核心代码详解

1.编写顶部按钮文件top.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">

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="58dp"
        android:layout_weight="1"
        android:gravity="center"
        android:textSize="30sp"
        android:text="微信" />
</LinearLayout>

2. 编写底部按钮文件bottom.xml

bottom平均分成四块,每块由一个图片和一个文字构成。所以可以用水平的LinearLayout里包裹一个竖直的LinearLayout,每个竖直的LinearLayout里包含一个ImageView和TextView。

bottom.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"
    style="@style/mainlayout">


    <LinearLayout
        android:id="@+id/layout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="109dp"
            android:layout_height="181dp"
            android:layout_weight="1"
            android:contentDescription="TODO"
            app:srcCompat="@drawable/p6" />

        <TextView
            android:id="@+id/textView"
            android:layout_width="110dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="微信"
            android:textAlignment="center" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="109dp"
            android:layout_height="181dp"
            android:layout_weight="1"
            android:contentDescription="TODO"
            app:srcCompat="@drawable/p2" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="110dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="微信"
            android:textAlignment="center" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="109dp"
            android:layout_height="181dp"
            android:layout_weight="1"
            android:contentDescription="TODO"
            app:srcCompat="@drawable/p3" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="110dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="微信"
            android:textAlignment="center" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imageView4"
            android:layout_width="109dp"
            android:layout_height="181dp"
            android:layout_weight="1"
            android:contentDescription="TODO"
            app:srcCompat="@drawable/p4" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="110dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="微信"
            android:textAlignment="center" />

    </LinearLayout>

</LinearLayout>

3. 编写组合文件mainlayout.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include
        layout="@layout/top"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <FrameLayout
        android:id="@+id/content"
        android:layout_width="wrap_content"
        android:layout_height="400dp">

    </FrameLayout>

    <include
        layout="@layout/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

4.创建Fragment类

在app/com.example.myapplication目录下新建Fragment(blank)类,同时会在res.layout里自动创建四个fragment.xml,作为点击按钮后出现的页面。

5.配置MainActivity.java文件

在MainActivity中“显示”我们的写的布局页面,实现我们的功能:点击监听、界面切换、按钮变化。

变量声明:

点击监听:

界面切换:

选择对应按钮后,页面的切换:

编写fragmentHide()

将Fragment都隐藏,然后选择相应按钮时显示对应Fragment:

OnCreate执行上面所写函数方法实现具体功能

运行结果:

点击通讯录

总结

本次实验是通过Android studio进行对微信主页面框架的搭建,对TextView,fragment,button等组件的使用有了更深的理解,同时熟练了整个软件的使用。

源码开源地址

https://gitee.com/Anycall_Q/wechat

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SwiftUI是一种用于iOS和macOS开发的用户界面框架,它可以帮助我们快速构建用户界面。要实现微信登录功能,我们可以使用SwiftUI与微信开放平台提供的SDK进行集成。 首先,我们需要在微信开放平台上注册并创建一个应用,获取到相应的AppID和AppSecret。 然后,在我们的SwiftUI项目中添加微信SDK,并将其配置到Xcode工程中。可以通过CocoaPods进行安装,并在项目的Info.plist文件中添加必要的配置信息。 接下来,我们需要使用SwiftUI的View来创建一个登录页面。在页面上放置一个登录按钮,并为其添加一个action。当用户点击登录按钮时,我们可以调用微信SDK中相应的方法,发起微信登录请求。 在用户同意授权后,微信SDK会返回一个包含用户信息的访问令牌。我们可以使用这个访问令牌来获取用户的微信信息,比如用户名、头像等。 最后,我们可以根据用户的微信信息来完成登录流程,比如将用户信息保存到本地或者发送到服务器进行验证。如果登录成功,我们可以跳转到应用的界面;如果登录失败,我们可以提示用户重新尝试或者提供其他登录方式。 总之,使用SwiftUI实现微信登录功能可以通过与微信SDK的集成来实现。通过发起微信登录请求、获取访问令牌和用户信息、完成登录流程等步骤,我们可以为用户提供方便快捷的登录方式。 ### 回答2: SwiftUI 是苹果官方推出的一种用于构建用户界面的框架,它提供了简洁高效的方式来为 iOS、iPadOS、macOS、watchOS 和 tvOS 开发应用程序。对于 SwiftUI 实现微信登录,可以参考以下步骤: 1. 导入微信 SDK:首先需要在项目中导入微信的开发工具包,可以通过 CocoaPods 或者手动下载导入方式获取微信 SDK。 2. 注册微信开发者帐号:在微信开放平台上注册一个开发者帐号,获取对应的 AppID。 3. 设置 AppID:在项目的 Info.plist 文件中添加一个 URL Scheme 以匹配微信开放平台上注册的 AppID。 4. 创建登录按钮:使用 SwiftUI 的 View 来创建一个微信登录按钮,并添加相应的样式和交互响应。 5. 调用微信登录接口:在点击登录按钮后,调用微信 SDK 提供的接口进行微信授权登录,并设置相应的回调函数来处理授权结果。 6. 处理登录结果:根据微信登录的回调结果,可以获取到用户的唯一标识信息、昵称、头像等基本信息。可以根据需要保存这些信息,例如将用户信息存储到本地数据库或者服务器。 7. 更新用户界面:根据登录结果,可以更新用户界面显示已登录状态,并展示用户的基本信息。 总之,通过以上步骤,我们可以在 SwiftUI 中实现微信登录功能,并且根据微信的授权结果来更新用户界面。这样,用户就可以通过微信进行登录,享受到更加便捷的登录方式。 ### 回答3: SwiftUI是一种用于iOS和macOS应用程序开发的用户界面框架。如果我们想要在SwiftUI应用中实现微信登录,我们可以按照以下步骤进行: 1. 导入微信SDK:首先,我们需要在项目中导入微信SDK。这可以通过在项目中添加微信SDK库文件来完成。我们可以在微信开放平台中获得微信SDK。 2. 创建微信登录按钮:接下来,我们可以使用SwiftUI的控件来创建一个微信登录按钮。我们可以使用Button控件并在其上添加微信的图标,以及用于显示"微信登录"等文字。 3. 实现微信登录功能:当用户点击微信登录按钮时,我们需要实现与微信服务器进行交互的逻辑。我们可以使用微信SDK提供的API来导航用户进行微信登录,并获取到用户的授权信息。 4. 处理微信登录结果:当用户完成微信登录后,我们需要获取到微信返回的登录结果。在我们的应用中,我们可以使用回调函数来处理这些结果。根据返回的结果,我们可以执行相应的操作,比如获取用户信息,进行登录验证等。 5. 更新用户界面:在处理完微信登录结果后,我们可能需要更新应用的用户界面。例如,根据用户的微信昵称和头像,我们可以在应用中显示这些信息。 总结起来,要在SwiftUI应用中实现微信登录,我们需要导入微信SDK,创建微信登录按钮,实现微信登录功能,处理登录结果,并根据结果更新用户界面。通过这些步骤,我们就能够在SwiftUI应用中实现微信登录功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值