Android安卓实战项目(5)---完整的健身APP基于安卓(源码在文末)可用于比赛项目或者作业参考中

这篇具有很好参考价值的文章主要介绍了Android安卓实战项目(5)---完整的健身APP基于安卓(源码在文末)可用于比赛项目或者作业参考中。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android安卓实战项目(5)—完整的健身APP(源码在文末🐕🐕🐕)可用于比赛项目

一.项目运行介绍

1.大致浏览

【bilibili视频】
https://www.bilibili.com/video/BV1uX4y177iR/?share_source=copy_web&vd_source=b2e9b9ed746acda34f499009647748ed

(1)开机动画

android实战项目,Android开源项目,android

(2)App介绍

android实战项目,Android开源项目,android

android实战项目,Android开源项目,android

android实战项目,Android开源项目,android

android实战项目,Android开源项目,android

android实战项目,Android开源项目,android

android实战项目,Android开源项目,android

android实战项目,Android开源项目,android

android实战项目,Android开源项目,android

android实战项目,Android开源项目,android

(3)身体指标填写

android实战项目,Android开源项目,android

android实战项目,Android开源项目,android

(4)体脂计算

android实战项目,Android开源项目,android

(5)主页功能介绍

android实战项目,Android开源项目,android

android实战项目,Android开源项目,android

二.具体实现

(1)主项目实现

MainActivity.java
package com.example.fitnessfreak;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager2.widget.CompositePageTransformer;
import androidx.viewpager2.widget.MarginPageTransformer;
import androidx.viewpager2.widget.ViewPager2;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    ViewPager2 viewPager2;
    androidx.appcompat.widget.Toolbar toolbar;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager2 = findViewById(R.id.viewpager);
        toolbar=findViewById(R.id.toolbar);
        toolbar.setNavigationIcon(R.drawable.bacharrow);
        setSupportActionBar(toolbar);

        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //startActivity(new Intent(getApplicationContext(),BMIResultsActivity.class));
                //Toast.makeText(getApplicationContext(),"uhu",Toast.LENGTH_LONG).show();
                onBackPressed();
            }
        });

        List<Slideritem> slideritems= new ArrayList<>();
        slideritems.add(new Slideritem(R.drawable.img1));
        slideritems.add(new Slideritem(R.drawable.img2));
        slideritems.add(new Slideritem(R.drawable.img3));
        slideritems.add(new Slideritem(R.drawable.img4));
        slideritems.add(new Slideritem(R.drawable.img5));
        slideritems.add(new Slideritem(R.drawable.img6));
        slideritems.add(new Slideritem(R.drawable.img7));
        slideritems.add(new Slideritem(R.drawable.remainder));
        slideritems.add(new Slideritem(R.drawable.premium));

        viewPager2.setAdapter(new SliderAdapter(slideritems,viewPager2));
        viewPager2.setClipToPadding(false);
        viewPager2.setClipChildren(false);
        viewPager2.setOffscreenPageLimit(3);
        viewPager2.getChildAt(0).setOverScrollMode(RecyclerView.OVER_SCROLL_NEVER);

        CompositePageTransformer compositePageTransformer=new CompositePageTransformer();
        compositePageTransformer.addTransformer(new MarginPageTransformer(3));
        compositePageTransformer.addTransformer(new ViewPager2.PageTransformer() {
            @Override
            public void transformPage(@NonNull View page, float position) {
                float r= 1-Math.abs(position);
                page.setScaleY(0.85f + r * 0.15f);
            }
        });

        viewPager2.setPageTransformer(compositePageTransformer);

    }

    public void gotoBMIcalci(View view) {
        startActivity(new Intent(getApplicationContext(),BMIActivity.class));
    }
    @Override
    public void onBackPressed() {
        super.onBackPressed();
    }
}

这段代码是一个名为 MainActivity 的 Android 活动(Activity)类。分析代码:

  1. 导入语句:
    导入了必要的 Android 和 Java 库,包括 androidx 相关库和一些控件、视图工具。

  2. MainActivity 类定义:
    该类继承了 AppCompatActivity,是使用 appcompat 库功能的活动的基类。

  3. onCreate 方法:
    这是活动的入口点,它初始化布局和其他控件,并对页面进行一些特殊效果的设置。

  4. 布局初始化:

    • setContentView(R.layout.activity_main);:此方法设置活动的布局,从名为 activity_main.xml 的 XML 布局文件加载UI元素。
    • 获取 ViewPager2 控件和自定义 Toolbar 控件,并设置 Toolbar 的导航图标以及导航按钮的点击事件监听器。
  5. 图片数据初始化:

    • 创建了一个包含多个 Slideritem 对象的列表 slideritems,每个对象包含一个图片资源 ID。
    • SliderAdapter 是一个自定义适配器,将图片数据绑定到 ViewPager2 控件上。
  6. 设置 ViewPager2 特效:

    • viewPager2.setClipToPadding(false);viewPager2.setClipChildren(false);:这些代码取消了 ViewPager2 和其子项的裁剪,以便让页面之间的元素显示出边界。
    • viewPager2.setOffscreenPageLimit(3);:这设置了 ViewPager2 的缓存页面数量,以优化滑动性能。
    • viewPager2.getChildAt(0).setOverScrollMode(RecyclerView.OVER_SCROLL_NEVER);:这代码禁用了 ViewPager2 的滑动过度效果。
  7. 创建页面变换器:

    • CompositePageTransformer 是一个组合的页面变换器,它可以将多个页面变换器组合在一起使用。
    • MarginPageTransformer 是一个页面变换器,它添加页面间的边距,用于在页面之间创建空白间隔。
    • ViewPager2.PageTransformer 是一个页面变换器接口,它用于自定义页面的转换效果。在这里,代码使用了该接口来实现页面的缩放效果。
  8. gotoBMIcalci 方法:
    这是一个公开的方法,当用户点击按钮时,会启动 BMIActivity 活动,用于导航到另一个界面。

  9. onBackPressed 方法:
    这是对返回按钮的处理,默认情况下调用 super.onBackPressed() 来处理返回事件。


(2)BMI体脂计算

BMIResultsActivity.java
package com.example.fitnessfreak;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class BMIResultsActivity extends AppCompatActivity {
TextView resultnum, resulttv;
Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bmiresults);
         SharedPreferences sharedPreferences = getSharedPreferences("Settings", Context.MODE_PRIVATE);

        SharedPreferences.Editor myEdit = sharedPreferences.edit();


        resultnum=findViewById(R.id.bmiresult);
        resulttv=findViewById(R.id.resulttv);
        button=findViewById(R.id.button);

        String a = getIntent().getStringExtra("bmi");
        myEdit.putString("bmi", a);

        myEdit.commit();
        myEdit.apply();


        resultnum.setText(a);

        float bmi = Float.parseFloat(a);
        if (bmi<=18.5){
            resulttv.setText("Classification: UnderWeight");
        }
        else if (bmi<=24.9&&bmi>18.5){
            resulttv.setText("Classification: Normal Weight");
        }
        else if (bmi<29.9&&bmi>25.0){
            resulttv.setText("Classification: OverWeight");
        }
        else if (bmi>30.0&&bmi<34.5){
            resulttv.setText("Classification: Obesity class I");
        }
        else if (bmi>35.0&&bmi<39.9){
            resulttv.setText("Classification: Obesity class II");
        }
        else if (bmi>=40.0){
            resulttv.setText("Classification: Obesity class III");
        }

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(getApplicationContext(),DashBoardActivity.class);
                intent.putExtra("bmi",a);
                Toast.makeText(getApplicationContext(),""+a,Toast.LENGTH_LONG).show();
                startActivity(intent);
            }
        });
    }
}

这段代码是一个名为 BMIResultsActivity 的 Android 活动(Activity)类,它负责显示从前一个活动传递过来的BMI(身体质量指数)结果以及根据该值进行分类。逐步分析代码如下:

  1. 导入语句:
    导入了必要的 Android 和 Java 库,以确保活动能够正确运行。

  2. BMIResultsActivity 类定义:
    该类继承了 AppCompatActivity,它是使用 appcompat 库功能的活动的基类。

  3. onCreate 方法:
    这是活动的入口点,它初始化布局并处理BMI的计算和分类。

  4. 布局初始化:

    • setContentView(R.layout.activity_bmiresults);:此方法设置活动的布局,从名为 activity_bmiresults.xml 的 XML 布局文件加载UI元素。
  5. BMI 计算和分类:

    • getSharedPreferences("Settings", Context.MODE_PRIVATE);:这获取了一个名为 “Settings” 的共享偏好设置文件,它是私有模式,意味着只能被应用本身访问。
    • SharedPreferences.Editor myEdit = sharedPreferences.edit();:它获取一个编辑器用于修改共享偏好设置。
    • String a = getIntent().getStringExtra("bmi");:通过 Intent 获取了传递自前一个活动的 “bmi” 值。
    • myEdit.putString("bmi", a);:将 “bmi” 值存储在共享偏好设置中,以便将来使用。
    • 代码接着根据计算得到的 float bmi 值,设置了 resulttv TextView 中的分类文本。
  6. 按钮点击事件监听器:

    • button.setOnClickListener(new View.OnClickListener() {...});:为 button(可能是一个按钮视图)添加了一个点击事件监听器,用于处理点击事件。
    • 当按钮被点击时,它创建一个 Intent 来启动 DashBoardActivity 并将 “bmi” 值通过 Intent 的附加信息传递给该活动。
    • 同时显示一个 Toast 消息,显示当前 “bmi” 值。

三.项目源码

链接:https://pan.baidu.com/s/1SwoW1Hi59e1dc1OLRgEnrA?pwd=jynl
提取码:jynl
这个项目的话,文件已加密,联系作者得密码,有偿(包括项目改进,技术文档,实验报告)
有开发需求请私信作者
或+v:15135757306文章来源地址https://www.toymoban.com/news/detail-686675.html

到了这里,关于Android安卓实战项目(5)---完整的健身APP基于安卓(源码在文末)可用于比赛项目或者作业参考中的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android安卓实战项目---登陆注册页面(源码在文末)

    效果图: 这段代码是一个简单的Android应用中的登录功能代码,下面逐行解释其功能和作用: 导入相关的类和包: 这些导入语句引入了用于构建Android应用界面、处理用户交互和数据存储的必要类和包。 定义一个名为 LoginActivity 的类,它继承自 AppCompatActivity ,表示这是一个用

    2024年02月13日
    浏览(40)
  • 基于安卓Android的房屋租赁系统APP(源码+文档+部署+讲解)

    毕设帮助、技术解答、源码交流 联系方式见文末。 房屋租赁App设计的目的是为用户提供房源信息、租房订单、房源资讯等方面的平台。 与PC端应用程序相比,房屋租赁App的设计主要面向于房主,旨在为管理员和租客、房主提供一个房屋租赁App。租客可以通过APP及时查看房源

    2024年02月22日
    浏览(47)
  • 基于安卓Android的校园点餐系统APP(源码+文档+部署+讲解)

    毕设帮助、技术解答、源码交流 联系方式见文末。 使用点餐系统app相对传统点餐管理方式具备很多优点:首先可以大幅提高点餐信息检索,只需输入点餐相关信息就能在数秒内反馈想要的结果;其次可存储大量的点餐信息,同时点餐信息安全性有更高的保障;相比纸质文件

    2024年04月16日
    浏览(43)
  • Android App开发实战项目之购物车(附源码 超详细必看)

    需要源码请点赞关注收藏后评论区留言~~~ 电商App的购物车可谓是司空见惯了,可以知道购物车除了底部有一个结算行,其余部分主要是已加入购物车的商品列表,然后每个商品左边是商品小图,右边是商品名称以及价格,第一次进入购物车页面应该是空的,随着加入东西的增

    2024年02月11日
    浏览(72)
  • Android Studio App开发实战项目之广告轮播(附源码 可用于大作业)

    需要图片集和源码请点赞关注收藏后评论区留言即可~~~ 电商App的首页上方,都在明显位置放了一栏广告条,并且广告条会轮播,非常吸引眼球,这种广告轮播的功能,为推广热门事物出力甚大。 轮播视频已上传至我的主页,有需要可自行前往观看~ 作为App首页的常客,广告轮

    2024年02月05日
    浏览(59)
  • Android Studio App开发实战项目之实现淘宝电商App首页界面(附源码,可用于大作业参考)

    需要源码和图片集请点赞关注收藏后评论区留言或者私信~~~ 各家电商的App首页都是动感十足,页面元素丰富令人眼花缭乱,其中运用了Android的多种组合控件,可以说是App界面开发的集大成之作,下面我们也动手实现一个。 本次项目主要模仿淘宝App采用的技术,所以有底部标

    2024年02月03日
    浏览(80)
  • Android App开发实战项目之给用户推荐旅游信息图片(附源码 简单易懂)

    需要全部源码请点赞关注收藏后评论区留言~~~ 假定用户打开一个旅游App想看看哪里风景比较优美,那么App应当展示各地的风景名声图片,为了让界面不太呆板,可以考虑交错显示风景图片,接着用户向下拉动页面,想要刷新界面浏览更多的图片,此时App界面响应下拉刷新手势

    2024年02月08日
    浏览(46)
  • 【Android App】实战项目之仿抖音的短视频分享App(附源码和演示视频 超详细必看)

    需要全部代码请点赞关注收藏后评论区留言私信~~~ 与传统的影视行业相比,诞生于移动互联网时代的短视频是个全新行业,它制作方便又容易传播,一出现就成为大街小巷的时髦潮流。 各行各业的人们均可通过短视频展示自己,短小精悍的视频片段原来能够容纳如此丰富的

    2024年02月03日
    浏览(45)
  • 【安卓开发】开源Notepad记事本APP项目(完整代码+说明文档)

    作业:记事本APP。要求: (1) 给出实现源程序,对源程序加以说明; (2) 给出屏幕运行结果的截图,运行结果含有个人特征; (3) 用word文档提交,文件名:班号-姓名-学号后3位-作业。 1.页面设计美观,可以正确显示数据(20分)。 2.实现数据保存、查询、修改和读取功能(20分

    2023年04月12日
    浏览(62)
  • Android---- 一个完整的小项目(消防app)

    前言:        针对不同群体的需求,想着应该拓展写方向。医疗app很受大家喜欢,就打算顺手写个消防app,里面基础框架还是挺简洁 规整的。登陆注册和本地数据库写的便于大家理解。是广大学子的毕设首选啊!       此app主要为了传递 消防知识,以及歌颂消防士兵的

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包