اپلیکیشن شاخص توده بدنی (BMI) در اندروید
فیلم آشنایی با اپلیکیشن شاخص توده بدنی (BMI) در اندروید
متن به همراه عکس آشنایی با اپلیکیشن شاخص توده بدنی (BMI) در اندروید
در این مقاله می خواهیم بدانیم BMI چیست و نحوه محاسبه این شاخص به چه صورت است. همچنین نحوه کدنویسی اپ BMI در اندروید را به شما آموزش می دهیم.
BMI چیست؟
شاخص توده بدنی مقیاسی برای اندازه گیری میزان چربی بدن و تناسب اندام بر اساس نسبت وزن به قد فرد است. این شاخص از طریق حاصل تقسیم وزن بر مجذور قد فرد محاسبه میشود:
کمتر از5/18: کمبود وزن (Underweight)
بین 5/18 تا 5/24: وزن نرمال (Normal Weight)
بین ۲۵ تا 9/29: اضافه وزن (Overweight)
بین ۳۰ تا9/34: چاقی درجه ۱ (Obesity Class I)
بین ۳۵ تا9/39: چاقی درجه ۲ (Obesity Class II)
بیشتر از 40: چاقی مفرط و مرگبار (Morbid Obesity)
خب حالا می خواهیم اپ BMI را کدنویسی کنیم. برای این کار ابتدا یک پروژه ی جدید به نام BMI میسازیم.
سپس وارد قسمت لایهی مربوط به آن از طریق آدرس زیر میشویم:
app>res>layout>activity_main
حال کدگذاریهای مربوط به هر قسمت را به صورت زیر انجام میدهیم:
قد:
1 2 3 4 5 6 7 8 9 10 11 12 |
<EditText android:id="@+id/et_MainActivity_qad" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:hint="لطفا قد خود را وارد نمایید ( سانتی متر )" android:layout_marginEnd="8dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> |
توضیح کدها:
- یک شناسه معرفی کردهایم که از طریق آن بتوانیم در قسمت جاوا آن را شناسایی کرده و استفاده کنیم.
- عرض Edit Text را مشخص کردهایم.
- طول Edit Text را مشخص کردهایم.
- در خط 6 برای راهنما عبارتی مینویسیم. زمانی که کاربر مقداری را وارد کرد، این عبارت پاک میشود.
- زمانی که شما در قسمت Preview، Edit Text را به دیواره های راست و چپ میکشیم خطوط کد 4تا5 و 7تا10 ایجاد میشود.
وزن:
1 2 3 4 5 6 7 8 9 10 11 12 |
<EditText 1 android:id="@+id/et_MAinActivity_vazn" 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:layout_marginStart="8dp" 5 android:layout_marginTop="8dp" 6 android:layout_marginEnd="8dp" 7 android:hint="لطفا وزن خود را وارد نمایید ( کیلو گرم )" 8 app:layout_constraintEnd_toEndOf="parent" 9 app:layout_constraintStart_toStartOf="parent" 10 app:layout_constraintTop_toBottomOf="@+id/et_MainActivity_qad" /> |
توضیح کدها:
- یک شناسه معرفی کردهایم که از طریق آن بتوانیم در قسمت جاوا آن را شناسایی کرده و استفاده کنیم.
- عرضEdit Text را مشخص کردهایم.
- طول Edit Text را مشخص کردهایم.
- در خط 7، برای راهنما عبارتی مینویسیم. زمانی که کاربر مقداری را وارد کرد، این عبارت پاک میشود.
- زمانی که شما در قسمت Preview،EditText را به دیواره های راست و چپ میکشیم خطوط کد 4تا6 و 8تا10 ایجاد میشود.
محاسبهی BMI:
1 2 3 4 5 6 7 8 9 10 11 12 |
<Button 1 android:id="@+id/b_MainActivity_result" 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:layout_marginStart="8dp" 5 android:layout_marginTop="8dp" 6 android:text="محاسبه" 7 android:layout_marginEnd="8dp" 8 app:layout_constraintEnd_toEndOf="parent" 9 app:layout_constraintStart_toStartOf="parent" 10 app:layout_constraintTop_toBottomOf="@+id/et_MAinActivity_vazn" /> |
توضیح کدها:
- یک شناسه معرفی کردهایم که از طریق آن بتوانیم در قسمت جاوا آن را شناسایی کرده و استفاده کنیم.
- عرض دکمه را مشخص کردهایم.
- طول دکمه را مشخص کردهایم.
- در خط 6 عبارت روی دکمه را مینویسیم.
- زمانی که شما در قسمت Preview،Button را به دیواره های راست و چپ میکشیم خطوط کد 4تا5 و 7تا10 ایجاد میشود.
نتیجهی محاسبه:
1 2 3 4 5 6 7 8 9 10 11 |
<TextView 1 android:id="@+id/tv_MainActivity_result" 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:layout_marginStart="8dp" 5 android:layout_marginTop="8dp" 6 android:layout_marginEnd="8dp" 7 android:text="bmi" 8 app:layout_constraintEnd_toEndOf="parent" 9 app:layout_constraintStart_toStartOf="parent" 10 app:layout_constraintTop_toBottomOf="@+id/b_MainActivity_result" /> |
توضیح کد:
- یک شناسه معرفی کردهایم که از طریق آن بتوانیم در قسمت جاوا آن را شناسایی کرده و استفاده کنیم.
- عرض Text View را مشخص کردهایم.
- طولText View را مشخص کردهایم.
- در خط 7 عبارت روی Text View را مینویسیم.
- زمانی که شما در قسمت Preview،Text View را به دیواره های راست و چپ میکشیم خطوط کد 4تا6 و 8تا10 ایجاد میشود.
باتوجه به BMI بدست آمده، میخواهیم مشخص کنیم که کاربر وضیعتش به چه صورت است.
(کمبود وزن-وزن نرمال-اضافه وزن)
برای این کار، به صورت زیر کدگذاری را انجام میدهیم:
1 2 3 4 5 6 7 8 9 10 |
<TextView 1 android:id="@+id/tv_MainActivity_if" 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:layout_marginStart="8dp" 5 android:layout_marginEnd="8dp" 6 android:text="شاخص توده بدنی" 7 app:layout_constraintEnd_toEndOf="parent" 8 app:layout_constraintStart_toStartOf="parent" 9 app:layout_constraintTop_toBottomOf="@+id/tv_MainActivity_result" /> |
توضیح کد:
- یک شناسه معرفی کردهایم که از طریق آن بتوانیم در قسمت جاوا آن را شناسایی کرده و استفاده کنیم.
- عرضText View را مشخص کردهایم.
- طولText View را مشخص کردهایم.
- در خط 6 عبارت رویText View را مینویسیم.
- زمانی که شما در قسمت Preview،TextView را به دیواره های راست و چپ میکشیم خطوط کد 4تا5 و 7تا9 ایجاد میشود.
سپس وارد قسمت جاوا از طریق آدرس زیر میشویم:
app>java>com.kazemieh.www. Bmi >MainActivity
در این قسمت کدهای زیر را وارد میکنیم:
1 2 3 4 5 6 |
Button b_result = findViewById(R.id.b_MainActivity_result); final EditText et_qad = findViewById(R.id.et_MainActivity_qad); final EditText et_vazn = findViewById(R.id.et_MAinActivity_vazn); final TextView tv_rsult = findViewById(R.id.tv_MainActivity_result); final TextView tv_if = findViewById(R.id.tv_MainActivity_if); |
توضیح کدها:
1_در این قسمت Button، EditTextها و TextViewها را تعریف کردهایم و از طریق متد findviewbyid، آدرس آنها را در قسمت لایه دادهایم.
1 2 3 4 5 |
b_result.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String s_qad = et_qad.getText().toString(); String s_vazn = et_vazn.getText().toString(); |
2_در این مجموعه کدها به وسیلهی متد setonclicklistener قابلیت کلیک شدن را به دکمهی خود میدهیم.
3_تعریف یک متغیر برای قرار دادن اطلاعات وارد شده (قد و وزن در Edit Text) از نوع string
محاسبات:
1 2 3 4 5 6 |
int i_qad = Integer.parseInt(s_qad); int i_vazn = Integer.parseInt(s_vazn); float f_qad = i_qad * i_qad; float f_result = i_vazn / f_qad; float result = f_result * 10000; |
وضیعت (کمبود وزن-وزن نرمال-اضافه وزن) در اپ BMI:
1 2 3 4 5 6 7 8 9 |
if (result < 18.5) { tv_if.setText("شما کمبود وزن دارید"); } else if (result > 18.5 && result < 24.9) { tv_if.setText("طبیعی"); } else if (result > 25 && result < 29.9) { tv_if.setText("شما اضافه وزن دارید"); } else if (result > 30) { tv_if.setText("شما چاق هستید"); } |
کدهای کامل بخش لایه:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
<?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" tools:context=".MainActivity"> <EditText android:id="@+id/et_MainActivity_qad" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:hint="لطفا قد خود را وارد نمایید ( سانتی متر )" android:layout_marginEnd="8dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <EditText android:id="@+id/et_MAinActivity_vazn" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:hint="لطفا وزن خود را وارد نمایید ( کیلو گرم )" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/et_MainActivity_qad" /> <Button android:id="@+id/b_MainActivity_result" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:text="محاسبه" android:layout_marginEnd="8dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/et_MAinActivity_vazn" /> <TextView android:id="@+id/tv_MainActivity_result" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:text="bmi" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/b_MainActivity_result" /> <TextView android:id="@+id/tv_MainActivity_if" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginEnd="8dp" android:text="شاخص توده بدنی" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tv_MainActivity_result" /> </androidx.constraintlayout.widget.ConstraintLayout> |
کدهای کامل بخش جاوا:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
package com.kazemieh.www.bmi; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button b_result = findViewById(R.id.b_MainActivity_result); final EditText et_qad = findViewById(R.id.et_MainActivity_qad); final EditText et_vazn = findViewById(R.id.et_MAinActivity_vazn); final TextView tv_rsult = findViewById(R.id.tv_MainActivity_result); final TextView tv_if = findViewById(R.id.tv_MainActivity_if); b_result.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String s_qad = et_qad.getText().toString(); String s_vazn = et_vazn.getText().toString(); int i_qad = Integer.parseInt(s_qad); int i_vazn = Integer.parseInt(s_vazn); float f_qad = i_qad * i_qad; float f_result = i_vazn / f_qad; float result = f_result * 10000; // Toast.makeText(getApplicationContext(),f_result+"",Toast.LENGTH_LONG).show(); tv_rsult.setText(result + ""); if (result < 18.5) { tv_if.setText("شما کمبود وزن دارید"); } else if (result > 18.5 && result < 24.9) { tv_if.setText("طبیعی"); } else if (result > 25 && result < 29.9) { tv_if.setText("شما اضافه وزن دارید"); } else if (result > 30) { tv_if.setText("شما چاق هستید"); } } }); } } |
اجرای پروژه:
دانلود فایل
مطالب زیر را حتما بخوانید
-
نحوهی کار با ویدئوپلیر (Video Player) از طریق پوشهی raw
7.42k بازدید
-
آلرت دیالوگ (AlertDialog) چیست و نحوهی کار با آن چگونه است؟
7.02k بازدید
-
اسنکبار (Snackbar) در اندروید
4.56k بازدید
-
ّFloating action Button (فلوتینگ اکشن باتن) در اندروید
4.39k بازدید
-
نحوهی کار با فریم لیوت (FrameLayout)
4.83k بازدید
-
یک روش برای تمرکز در برنامهنویسی
3.27k بازدید
دیدگاهتان را بنویسید