做旅游网站需要的背景,微信二维码,做家教网站,西安网站创建Android安卓实战项目#xff08;5#xff09;—完整的健身APP#xff08;源码在文末#x1f415;#x1f415;#x1f415;#xff09;可用于比赛项目
一.项目运行介绍
1.大致浏览
【bilibili视频】 https://www.bilibili.com/video/BV1uX4y177iR/?
#xff08;15—完整的健身APP源码在文末可用于比赛项目
一.项目运行介绍
1.大致浏览
【bilibili视频】 https://www.bilibili.com/video/BV1uX4y177iR/?
1开机动画 2App介绍 3身体指标填写 4体脂计算 5主页功能介绍 二.具体实现
1主项目实现
MainActivity.javapackage 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;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewPager2 findViewById(R.id.viewpager);toolbarfindViewById(R.id.toolbar);toolbar.setNavigationIcon(R.drawable.bacharrow);setSupportActionBar(toolbar);toolbar.setNavigationOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {//startActivity(new Intent(getApplicationContext(),BMIResultsActivity.class));//Toast.makeText(getApplicationContext(),uhu,Toast.LENGTH_LONG).show();onBackPressed();}});ListSlideritem 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 compositePageTransformernew CompositePageTransformer();compositePageTransformer.addTransformer(new MarginPageTransformer(3));compositePageTransformer.addTransformer(new ViewPager2.PageTransformer() {Overridepublic 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));}Overridepublic void onBackPressed() {super.onBackPressed();}
}这段代码是一个名为 MainActivity 的 Android 活动Activity类。分析代码 导入语句 导入了必要的 Android 和 Java 库包括 androidx 相关库和一些控件、视图工具。 MainActivity 类定义 该类继承了 AppCompatActivity是使用 appcompat 库功能的活动的基类。 onCreate 方法 这是活动的入口点它初始化布局和其他控件并对页面进行一些特殊效果的设置。 布局初始化 setContentView(R.layout.activity_main);此方法设置活动的布局从名为 activity_main.xml 的 XML 布局文件加载UI元素。获取 ViewPager2 控件和自定义 Toolbar 控件并设置 Toolbar 的导航图标以及导航按钮的点击事件监听器。 图片数据初始化 创建了一个包含多个 Slideritem 对象的列表 slideritems每个对象包含一个图片资源 ID。SliderAdapter 是一个自定义适配器将图片数据绑定到 ViewPager2 控件上。 设置 ViewPager2 特效 viewPager2.setClipToPadding(false); 和 viewPager2.setClipChildren(false);这些代码取消了 ViewPager2 和其子项的裁剪以便让页面之间的元素显示出边界。viewPager2.setOffscreenPageLimit(3);这设置了 ViewPager2 的缓存页面数量以优化滑动性能。viewPager2.getChildAt(0).setOverScrollMode(RecyclerView.OVER_SCROLL_NEVER);这代码禁用了 ViewPager2 的滑动过度效果。 创建页面变换器 CompositePageTransformer 是一个组合的页面变换器它可以将多个页面变换器组合在一起使用。MarginPageTransformer 是一个页面变换器它添加页面间的边距用于在页面之间创建空白间隔。ViewPager2.PageTransformer 是一个页面变换器接口它用于自定义页面的转换效果。在这里代码使用了该接口来实现页面的缩放效果。 gotoBMIcalci 方法 这是一个公开的方法当用户点击按钮时会启动 BMIActivity 活动用于导航到另一个界面。 onBackPressed 方法 这是对返回按钮的处理默认情况下调用 super.onBackPressed() 来处理返回事件。 2BMI体脂计算
BMIResultsActivity.javapackage 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;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_bmiresults);SharedPreferences sharedPreferences getSharedPreferences(Settings, Context.MODE_PRIVATE);SharedPreferences.Editor myEdit sharedPreferences.edit();resultnumfindViewById(R.id.bmiresult);resulttvfindViewById(R.id.resulttv);buttonfindViewById(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 (bmi18.5){resulttv.setText(Classification: UnderWeight);}else if (bmi24.9bmi18.5){resulttv.setText(Classification: Normal Weight);}else if (bmi29.9bmi25.0){resulttv.setText(Classification: OverWeight);}else if (bmi30.0bmi34.5){resulttv.setText(Classification: Obesity class I);}else if (bmi35.0bmi39.9){resulttv.setText(Classification: Obesity class II);}else if (bmi40.0){resulttv.setText(Classification: Obesity class III);}button.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {Intent intentnew Intent(getApplicationContext(),DashBoardActivity.class);intent.putExtra(bmi,a);Toast.makeText(getApplicationContext(),a,Toast.LENGTH_LONG).show();startActivity(intent);}});}
}这段代码是一个名为 BMIResultsActivity 的 Android 活动Activity类它负责显示从前一个活动传递过来的BMI身体质量指数结果以及根据该值进行分类。逐步分析代码如下 导入语句 导入了必要的 Android 和 Java 库以确保活动能够正确运行。 BMIResultsActivity 类定义 该类继承了 AppCompatActivity它是使用 appcompat 库功能的活动的基类。 onCreate 方法 这是活动的入口点它初始化布局并处理BMI的计算和分类。 布局初始化 setContentView(R.layout.activity_bmiresults);此方法设置活动的布局从名为 activity_bmiresults.xml 的 XML 布局文件加载UI元素。 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 中的分类文本。 按钮点击事件监听器 button.setOnClickListener(new View.OnClickListener() {...});为 button可能是一个按钮视图添加了一个点击事件监听器用于处理点击事件。当按钮被点击时它创建一个 Intent 来启动 DashBoardActivity 并将 “bmi” 值通过 Intent 的附加信息传递给该活动。同时显示一个 Toast 消息显示当前 “bmi” 值。
三.项目源码
链接https://pan.baidu.com/s/1SwoW1Hi59e1dc1OLRgEnrA?pwdjynl 提取码jynl
这个项目的话文件已加密联系作者得密码有偿包括项目改进技术文档实验报告 V15135757306