Android安卓实战项目(2)---健身UI APP(源码在文末)

news2024/11/28 4:43:15

Android安卓实战项目(2)—健身UI APP(源码在文末)

一.项目运行介绍

1.大致浏览

image-20230724150253023

image-20230724150323573

2.功能介绍

(1)功能一

第一个界面点击后可以弹出图像,如图:

image-20230724150357285

(2)功能二

image-20230724150431916

界面二的控件可以通过滑动下拉条来调解

二.具体实现

MainActivity.java

package com.example.fitnessui;

import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;

import android.os.Bundle;

import com.example.fitnessui.Fragment.ViewPagerAdapter;
import com.google.android.material.tabs.TabLayout;

public class MainActivity extends AppCompatActivity {
    ViewPager viewPager;
    TabLayout tabLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager = findViewById(R.id.MainActivty_MainPager);
        tabLayout = findViewById(R.id.MainActivty_TableLayout);
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        viewPager.setAdapter(adapter);
        tabLayout.setupWithViewPager(viewPager);
    }
}

PopupActivity.java

package com.example.fitnessui;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;

import com.example.fitnessui.Fragment.PopupFragment;

public class PopupActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.popupactivity);
        FragmentManager fragmentManager = getSupportFragmentManager();
        Fragment fragment = fragmentManager.findFragmentById(R.id.popupactivtyFrame);
        if (fragment == null) {
            fragment = PopupFragment.newInstance();
            fragmentManager.beginTransaction().add(R.id.popupactivtyFrame, fragment).commit();
        }
    }

    public static Intent newIntent(Context context, FitnessMove fitnessMove) {
        Intent intent = new Intent(context, PopupActivity.class);
        intent.putExtra("Info", fitnessMove);
        return intent;
    }
}

FitnessMove.java

package com.example.fitnessui;

import android.os.Parcel;
import android.os.Parcelable;

public class FitnessMove implements Parcelable {
    private String fitnessName;
    private String fitnessPictures;
    private String fitnessDescription;
    private int fitnessCalorie;


    public FitnessMove(String fitnessName, String fitnessPictures, String fitnessDescription, int fitnessCalorie) {
        this.fitnessName = fitnessName;
        this.fitnessPictures = fitnessPictures;
        this.fitnessDescription = fitnessDescription;
        this.fitnessCalorie = fitnessCalorie;
    }

    public String getFitnessName() {
        return fitnessName;
    }

    public String getFitnessPictures() {
        return fitnessPictures;
    }

    public String getFitnessDescription() {
        return fitnessDescription;
    }

    public int getFitnessCalorie() {
        return fitnessCalorie;
    }

    protected FitnessMove(Parcel in) {
        fitnessName = in.readString();
        fitnessPictures = in.readString();
        fitnessDescription = in.readString();
        fitnessCalorie = in.readInt();
    }

    public static final Creator<FitnessMove> CREATOR = new Creator<FitnessMove>() {
        @Override
        public FitnessMove createFromParcel(Parcel in) {
            return new FitnessMove(in);
        }

        @Override
        public FitnessMove[] newArray(int size) {
            return new FitnessMove[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel parcel, int i) {
        parcel.writeString(fitnessName);
        parcel.writeString(fitnessPictures);
        parcel.writeString(fitnessDescription);
        parcel.writeInt(fitnessCalorie);
    }
}

三.项目源码

链接:https://pan.baidu.com/s/1fE-Koh-VmnFOxNKF9CsQNA?pwd=jynl
提取码:jynl

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Spring] 三级缓存解决循环依赖详解

什么是循环依赖 注册一个bean对象的过程&#xff1a; Spring扫描class得到BeanDefinition – 根据得到的BeanDefinition去生成bean – 现根据class推断构造方法 – 根据推断出来的构造方法&#xff0c;反射&#xff0c;得到一个对象 – 填充初始对象中的属性(依赖注入) – 如果…

window的anaconda下安装opencv

window安装opencv 阿巴阿巴&#xff0c;安装了多少遍的opencv今天居然搞了这么久。整理一下笔记把。 解决思路主要来源于&#xff1a;(37条消息) 导入import cv2时出现ImportError:DLL load fail:找不到指定模块的解决办法_import cv2 importerror: dll load failed: 找不到指定…

【C进阶】指针进阶(1)_二次复习版

目录 1. 字符指针 1.1常量字符串的修改 加上const解决问题 打印常量字符串 1.2数组存放的字符串 1.3例题:数组创建与常量池的区别 2. 指针数组 2.1字符指针数组 2.2整型指针数组 2.3使用3个一维数组,模拟实现一个二维数组 2.4例题: 3.数组指针 3.1 数组指针的定义…

快速上手Webpack打包指南:用简单的步骤掌握Webpack的使用技巧

目录 概念&#xff1a;1. webpack 打包简介1.0 多个 JS 文件打包&#xff1a;1.1 webpack 数组形式1.2 webpack 对象形式 总结 Webpack的打包过程可以总结为以下几个步骤&#xff1a; 1.入口点配置&#xff1a;在Webpack的配置文件中&#xff0c;我们需要指定一个或多个入口点…

Android Studio 代码模板插件实现

Android Studio 代码模板插件 背景 可以跳过背景和简述&#xff0c;从模板插件实现开始看. 开发新页面时&#xff0c;原先需要写一堆模板代码。比如用Databinding写列表结构的页面&#xff0c;需要手写以下文件&#xff1a; XxActivity.ktXxFragment.ktXxViewModel.ktXxListA…

从零开始学习CTF

前言 CTF简介 中文一般译作夺旗赛&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式 CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式 竞赛模式 解题模式&#xff1a; 在解题模式…

如何引导客户进行自助服务,提高员工工作效率?

搭建帮助中心是大多数企业都在尝试做的事情&#xff0c;它的重要性对于企业来说不言而喻。现在对于企业来说&#xff0c;搭建帮助中心或许不是什么难事&#xff0c;但是关于帮助中心&#xff0c;有几个问题需要思考清楚&#xff0c;才能让其发挥最大的价值。 一、如何让用户养成…

Android手机app页面布局方法

app页面布局方法 1. FrameLayout&#xff08;帧布局&#xff09; (1) FrameLayout是最简单的布局了。所有放在布局里的控件&#xff0c;都按照层次堆叠在屏幕的左上角。后加进来的控件覆盖前面的控件。 2. LinearLayout&#xff08;线性布局&#xff09; (1) LinearLayout按…

第九章 多组学简介

第一节 什么是多组学 多组学encode计划是一个大型国际合作计划&#xff0c;旨在研究各种生物体系中的功能元件和基因组功能。该计划的目标是建立一个全面的生物信息学数据库&#xff0c;包括人类和其他生物的基因组和表观基因组、转录组、蛋白质组、代谢组和表型组等。 多组学…

高等数学❤️第一章~第三节~极限❤️间断点及其分类

【精讲】高等数学中的间断点及其分类 博主&#xff1a;命运之光的主页 专栏&#xff1a;高等数学 目录 【精讲】高等数学中的间断点及其分类 导言 一、间断点的概念 二、间断点的分类 必需记忆知识点 知识点1 知识点2 例题&#xff08;用于熟悉高等数学中的间断点及其…

dp算法篇Day11

“哎呀&#xff0c;哎呀&#xff0c;流云开一朵&#xff0c;哟诶嘿哟&#xff0c;哟诶嘿哟~” 51、目标和 (1) 题目解析 包括之后的一些题目&#xff0c;乍一眼看可能你不会发现它与dp问题有何相连&#xff0c;可是按照按照题目又难以想出 思路、写出代码来。因此&#xff0c;…

PostgreSQL——编码“GBK“的字符0x0xa8 0x27在编码“UTF8“没有相对应值`

问题&#xff1a;编码"GBK"的字符0x0xa8 0x27在编码"UTF8"没有相对应值 原因&#xff1a;客户端编码与服务端编码不一致 select name,setting,context from pg_settings where name like %encoding%; 解决方案&#xff1a;修改客户端编码方式和服务端一致…

Jmeter接口测试工具的一些使用小技巧

如何使用英文界面的JMeter Jmeter启动时会自动判断操作系统的locale 并选择合适的语言启动&#xff0c;所以&#xff0c;我们启动jmeter后&#xff0c;其会出现一个倍感亲切的中文界面。但由于jmeter本身的汉化工作做得不好&#xff0c;你会看到有未被汉化的选项及元件的参数。…

脸书营销,跨境电商不能忽视的营销新趋势

Facebook营销就是在Facebook上通过有针对性的广告、商业品牌群组等地方推广您的业务。随着社交媒体继续成为我们日常生活中不可或缺的一部分&#xff0c;Facebook产品在社交商务方面的扩展使该平台成为吸引新客户的重要渠道。 您应该注意到&#xff0c;很多企业都通过Facebook…

3个能免费使用的AI绘画软件,效果精致

通过AI绘画软件&#xff0c;设计小白也能轻松创作出精美的图画创作。本文将为大家介绍3款能免费使用的AI绘画软件&#xff0c;它们能帮助设计小白或者经验丰富的设计师快速设计出精美的图画作品&#xff0c;一起来看看吧&#xff01; 1、即时灵感 即时灵感是国产的AI绘画软件…

【复习45-51题】【每天40分钟,我们一起用50天刷完 (剑指Offer)】第三十七天 37/50

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

VRRP技术和浮动路由(第二十六课)

VRRP技术和浮动路由(第二十六课) 一、浮动路由 1、浮动路由概述 1&#xff09;浮动路由是什么 -浮动路由又称为路由备份&#xff0c;由两条或多条链路组成浮动路由 -浮动路由指配置两条静态路由&#xff0c;这两条静态路由的目的地址相同&#xff0c;但是下一跳地址不同两…

CPM-Bee-5B微调实记

CPM-Bee-5B微调实记 1. 准备工作 &#xff08;1&#xff09;用PyCharm打开CPM-Bee文件夹。 &#xff08;2&#xff09;设置成自己的环境&#xff1a;nlp &#xff08;3&#xff09;将src文件夹在终端打开 &#xff08;4&#xff09;激活自己的环境&#xff1a;nlp 2. 准备…

web自动化测试进阶篇05 ——— 界面交互场景测试

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

数据结构day6(2023.7.20)

一、Xmind整理&#xff1a; 二、课上练习&#xff1a; 练习1&#xff1a;个栈的入栈次序ABCDE&#xff0c;则栈的不可能的输出序列是&#xff08;D&#xff09; A.ABCDE B.DECBA C.EDCBA D.DCEAB 栈的特点是先进后出&#xff0c;后进先出&#xf…