Android安卓毕业设计实战项目(16)

编程入门 行业动态 更新时间:2024-10-09 12:31:03

Android安卓<a href=https://www.elefans.com/category/jswz/34/1770099.html style=毕业设计实战项目(16)"/>

Android安卓毕业设计实战项目(16)

Android安卓毕业设计实战项目(16)—宠物商城app【购买,购物车,查看宠物具体信息】–炫酷的UI界面(源码在文末🐕🐕🐕)【可用于安卓毕设或安卓课设作业】

一.项目运行介绍

B站演示视频:
/
B站演示视频:
/

二.具体实现

MainActivity.java
package com.project.petApp;import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import android.widget.Toast;import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;import com.google.android.material.navigation.NavigationView;
import com.project.petApp.menu.favorite.FavoriteFragment;
import com.project.petApp.menu.home.HomeFragment;
import com.project.petApp.menu.profile.ProfileFragment;import java.util.Objects;import nl.joery.animatedbottombar.AnimatedBottomBar;public class MainActivity extends AppCompatActivity {private static final String TAG = MainActivity.class.getSimpleName();private Toolbar toolbar;AnimatedBottomBar animatedBottomBar;FragmentManager fragmentManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setToolbar();initViews(savedInstanceState);initComponentsNavHeader();}private void setToolbar() {toolbar = findViewById(R.id.toolbar);setSupportActionBar(toolbar);Objects.requireNonNull(getSupportActionBar()).setTitle(0);}@SuppressLint("NonConstantResourceId")private void initViews(Bundle savedInstanceState) {/*** Menu Bottom Navigation Drawer* */animatedBottomBar = findViewById(R.id.navigation);if (savedInstanceState == null) {animatedBottomBar.selectTabById(R.id.nav_menu_home, true);fragmentManager = getSupportFragmentManager();HomeFragment homeFragment = new HomeFragment();fragmentManager.beginTransaction().replace(R.id.fragment_container, homeFragment)mit();}animatedBottomBar.setOnTabSelectListener((lastIndex, lastTab, newIndex, newTab) -> {Fragment fragment = null;switch (newTab.getId()) {case R.id.nav_menu_home:fragment = new HomeFragment();break;case R.id.nav_menu_wishlist:fragment = new FavoriteFragment();break;case R.id.nav_menu_signin:fragment = new ProfileFragment();break;}if (fragment != null) {fragmentManager = getSupportFragmentManager();fragmentManager.beginTransaction().replace(R.id.fragment_container, fragment)mit();} else {Log.e(TAG, "Error in creating Fragment");}});/*** Menu Navigation Drawer**/DrawerLayout drawer = findViewById(R.id.drawer_layout);ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);drawer.addDrawerListener(toggle);toggle.setDrawerIndicatorEnabled(false);toggle.setToolbarNavigationClickListener(view -> drawer.openDrawer(GravityCompat.START));toggle.setHomeAsUpIndicator(R.drawable.ic_drawer);toggle.syncState();}private void initComponentsNavHeader(){NavigationView navigationView = findViewById(R.id.nav_view);
//        navigationView.setItemIconTintList(null); //disable tint on each icon to use color icon svgnavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {@SuppressLint("NonConstantResourceId")@Overridepublic boolean onNavigationItemSelected(@NonNull MenuItem item) {switch (item.getItemId()) {case R.id.nav_weeds:
//                        Intent intent1 = new Intent(MainActivity.this, MainActivity.class);
//                        startActivity(intent1);break;case R.id.nav_insects:
//                        Pesan("Menu Insects");
//                        Intent intent2 = new Intent(MainActivity.this, FavoriteFragment.class);
//                        startActivity(intent2);break;case R.id.nav_diseases:
//                        Intent intent3 = new Intent(MainActivity.this, ProfileFragment.class);
//                        startActivity(intent3);
//                        Pesan("Menu Diseases");break;case R.id.nav_help:
//                        Pesan("Menu Help");break;}DrawerLayout drawer = findViewById(R.id.drawer_layout);drawer.closeDrawer(GravityCompat.START);return true;}private void Pesan(String pesan) {Toast.makeText(MainActivity.this, pesan, Toast.LENGTH_SHORT).show();}});}@Overridepublic void onBackPressed() {DrawerLayout drawer = findViewById(R.id.drawer_layout);if (drawer.isDrawerOpen(GravityCompat.START)) {drawer.closeDrawer(GravityCompat.START);} else {super.onBackPressed();}}
}

这是一个Android应用的MainActivity代码,它是应用的主要活动,包含了底部导航栏、抽屉式导航栏和多个碎片(Fragments)的管理。以下是代码的详细解释:

package com.project.petApp;import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import android.widget.Toast;import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;import com.google.android.material.navigation.NavigationView;
import com.project.petApp.menu.favorite.FavoriteFragment;
import com.project.petApp.menu.home.HomeFragment;
import com.project.petApp.menu.profile.ProfileFragment;import java.util.Objects;import nl.joery.animatedbottombar.AnimatedBottomBar;public class MainActivity extends AppCompatActivity {private static final String TAG = MainActivity.class.getSimpleName();private Toolbar toolbar;AnimatedBottomBar animatedBottomBar;FragmentManager fragmentManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setToolbar();initViews(savedInstanceState);initComponentsNavHeader();}private void setToolbar() {toolbar = findViewById(R.id.toolbar);setSupportActionBar(toolbar);Objects.requireNonNull(getSupportActionBar()).setTitle(0);}@SuppressLint("NonConstantResourceId")private void initViews(Bundle savedInstanceState) {/*** Menu Bottom Navigation Drawer* */animatedBottomBar = findViewById(R.id.navigation);if (savedInstanceState == null) {animatedBottomBar.selectTabById(R.id.nav_menu_home, true);fragmentManager = getSupportFragmentManager();HomeFragment homeFragment = new HomeFragment();fragmentManager.beginTransaction().replace(R.id.fragment_container, homeFragment)mit();}animatedBottomBar.setOnTabSelectListener((lastIndex, lastTab, newIndex, newTab) -> {Fragment fragment = null;switch (newTab.getId()) {case R.id.nav_menu_home:fragment = new HomeFragment();break;case R.id.nav_menu_wishlist:fragment = new FavoriteFragment();break;case R.id.nav_menu_signin:fragment = new ProfileFragment();break;}if (fragment != null) {fragmentManager = getSupportFragmentManager();fragmentManager.beginTransaction().replace(R.id.fragment_container, fragment)mit();} else {Log.e(TAG, "Error in creating Fragment");}});/*** Menu Navigation Drawer**/DrawerLayout drawer = findViewById(R.id.drawer_layout);ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);drawer.addDrawerListener(toggle);toggle.setDrawerIndicatorEnabled(false);toggle.setToolbarNavigationClickListener(view -> drawer.openDrawer(GravityCompat.START));toggle.setHomeAsUpIndicator(R.drawable.ic_drawer);toggle.syncState();}private void initComponentsNavHeader(){NavigationView navigationView = findViewById(R.id.nav_view);
//        navigationView.setItemIconTintList(null); //disable tint on each icon to use color icon svgnavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {@SuppressLint("NonConstantResourceId")@Overridepublic boolean onNavigationItemSelected(@NonNull MenuItem item) {switch (item.getItemId()) {case R.id.nav_weeds:
//                        Intent intent1 = new Intent(MainActivity.this, MainActivity.class);
//                        startActivity(intent1);break;case R.id.nav_insects:
//                        Pesan("Menu Insects");
//                        Intent intent2 = new Intent(MainActivity.this, FavoriteFragment.class);
//                        startActivity(intent2);break;case R.id.nav_diseases:
//                        Intent intent3 = new Intent(MainActivity.this, ProfileFragment.class);
//                        startActivity(intent3);
//                        Pesan("Menu Diseases");break;case R.id.nav_help:
//                        Pesan("Menu Help");break;}DrawerLayout drawer = findViewById(R.id.drawer_layout);drawer.closeDrawer(GravityCompat.START);return true;}private void Pesan(String pesan) {Toast.makeText(MainActivity.this, pesan, Toast.LENGTH_SHORT).show();}});}@Overridepublic void onBackPressed() {DrawerLayout drawer = findViewById(R.id.drawer_layout);if (drawer.isDrawerOpen(GravityCompat.START)) {drawer.closeDrawer(GravityCompat.START);} else {super.onBackPressed();}}
}

这个代码实现了以下功能:

  1. 设置了一个工具栏(Toolbar),它是应用栏的一部分,用于显示应用的标题和操作按钮。

  2. 初始化了底部导航栏(AnimatedBottomBar),在 onCreate 方法中选中了默认选项并加载了相应的碎片(Fragment)。

  3. 底部导航栏的选择监听器在选项切换时加载不同的碎片。

  4. 设置了抽屉式导航栏(NavigationView),允许用户通过滑动侧边栏来访问不同的菜单选项。

  5. 处理了抽屉式导航栏中各菜单选项的点击事件。

  6. 处理了后退按钮的行为,如果抽屉式导航栏打开,会关闭它,否则会执行默认的后退操作。

这段代码实现了一个具有底部导航栏和抽屉式导航栏的Android应用的主活动。不同的选项卡切换不同的碎片内容,而侧边栏菜单提供了额外的导航选项。

SplashActivity.java
package com.project.petApp;import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;import com.project.petApp.util.TypefaceUtil;public class SplashActivity extends AppCompatActivity {protected Handler mHandler=new Handler();protected TextView tv1,tv2;protected Context mContext= SplashActivity.this;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_splash);tv1=findViewById(R.id.text1);tv2=findViewById(R.id.text2);//        FontsUtils.setAppTypeface(mContext);TypefaceUtil tfUtil = new TypefaceUtil(mContext, "fonts/aa.ttf");tfUtil.setTypeface(tv1,false);tfUtil.setTypeface(tv2,false);
//        TextView tv = findViewById(R.id.text1);
//        Typeface typeface = Typeface.createFromAsset(mContext.getAssets(), "fonts/simkai.ttf");  // mContext为上下文
//        tv.setTypeface(typeface );mHandler.postDelayed(new Runnable() {@Overridepublic void run() {startActivity(new Intent(SplashActivity.this, MainActivity.class));}},4000);//2秒钟之后进入闪屏页}
}

以下是一个Android应用的SplashActivity的代码,它用于在应用启动时显示一个闪屏屏幕,然后在一段时间后切换到主活动。下面是代码的详细解释:

package com.project.petApp;import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;import com.project.petApp.util.TypefaceUtil;public class SplashActivity extends AppCompatActivity {
  • 代码开始定义了包名,并导入了Android应用所需的类和库,包括ContextIntentHandlerTextView。还导入了一个自定义的实用工具类TypefaceUtil
    protected Handler mHandler = new Handler();protected TextView tv1, tv2;protected Context mContext = SplashActivity.this;
  • 在这里,声明了实例变量,包括Handler、两个TextView小部件(tv1tv2)以及一个Context对象(mContext)。Handler用于在指定的时间后发布一个延迟操作。
    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_splash);
  • 这是onCreate方法,当活动创建时会被调用。它将内容视图设置为在R.layout.activity_splash中定义的布局。这个布局可能包含了闪屏屏幕的可视元素。
        tv1 = findViewById(R.id.text1);tv2 = findViewById(R.id.text2);
  • 这些代码行通过它们的ID(text1text2)在布局中找到两个TextView元素,并将它们分配给tv1tv2变量。这些TextView小部件用于在闪屏屏幕上显示文本。
        TypefaceUtil tfUtil = new TypefaceUtil(mContext, "fonts/aa.ttf");tfUtil.setTypeface(tv1, false);tfUtil.setTypeface(tv2, false);
  • 在这里,创建了一个TypefaceUtil对象(tfUtil),这是一个自定义的实用程序类,用于将自定义字体应用于文本视图。它将来自"fonts/aa.ttf"文件的自定义字体设置给tv1tv2
        mHandler.postDelayed(new Runnable() {@Overridepublic void run() {startActivity(new Intent(SplashActivity.this, MainActivity.class));}}, 4000); // 2秒延迟后开始主活动}
}
  • 最后,在Handler上发布一个带有4000毫秒(4秒)延迟的Runnable。在此延迟后,将执行Runnable中的run方法。在run方法内部,创建了一个Intent以启动MainActivity,然后调用startActivity以在显示闪屏屏幕4秒后切换到主活动。

这段代码演示了Android闪屏屏幕活动的典型结构,包括布局设置、字体自定义以及在延迟后切换到主活动。


三.项目源码

链接:=nljy
提取码:nljy

更多推荐

Android安卓毕业设计实战项目(16)

本文发布于:2024-03-13 14:18:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1734165.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:毕业设计   实战   项目   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!