网络资源模板
利用网络资源,扩展职业网络 #生活常识# #职场技能提升#
目录
一、项目测试视频
二、项目简介
四、项目测试环境
五、项目详情设计
Get 项目模板源码
原创 个人健康管理系统 :基于Android的个人健康管理系统
一、项目测试视频
网络资源模板--基于Android studio 实现健康饮食搭配App
二、项目简介
主要实现了一款实用的饮食搭配系统,有欢迎界面、引导界面和使用界面,其中引导界面只会在第一次使用app时候出现,符合用户使用习惯。使用界面有三个选项卡:食物搭配表、食物营养表、关于本软件。
【食物搭配表】是以列表形式显示食物的信息,点击进去可以查看详情,可以进行搜索和刷新;
【食物营养表】是以网格列表展示食物的信息,点进去也可以查看食物的详情;
【关于本软件】是有关软件的开发信息,包括版本号、联系电话、公司地址等,最上层有轮播图,还可以分享软件。
bean包里面是食物的工具类,FoodUtils里面是食物的数据,FoodBean里面是食物的各个属性的get和set方法以及构造方法。
food_grid包是网格列表,FoodGridActivity是显示网格列表的主活动,FoodGridAdapter是适配器,用来让FoodGridActivity显示Utils里面的数据,FoodDescActivity就是食物的详情活动。
food_list包是条目列表,InfoListActivity是列表活动,InfoListAdapter是适配器,用来让InfoListActivity显示食物数据。
guide包是引导包,里面GuideActivity显示引导界面,GuideAdapter是适配器,负责让GuideActivity显示三个可以滑动的界面。MainActivity就是整个项目的主文件,默认显示菜单界面。
AboutActivity和AboutAdapter一起组成关于界面,形成轮播图效果。
HomeMenuActivity就是应用默认显示的主菜单界面。
四、项目测试环境
五、项目详情设计
启动模拟器运行项目,进入应用的【欢迎】界面,右上角会显示倒计时五秒钟,这是参考现在很多app的广告欢迎界面
倒计时结束后,进入【引导】界面,这个界面只会在第一次打开应用时候出现,以后都不会出现,这样的设计就很人性化。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/guide_vp"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
<LinearLayout
android:id="@+id/guide_layout"
android:orientation="horizontal"
android:layout_marginBottom="20dp"
android:layout_alignParentBottom="true"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/guide_tv1"
android:text="1"
android:textStyle="bold|italic"
android:textSize="20sp"
android:textColor="@color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/guide_tv2"
android:text="2"
android:textStyle="bold|italic"
android:textSize="20sp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_width="wrap_content"
android:textColor="@color/white"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/guide_tv3"
android:text="3"
android:textStyle="bold|italic"
android:textSize="20sp"
android:textColor="@color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<Button
android:id="@+id/guide_btn"
android:layout_width="200dp"
android:layout_height="70dp"
android:layout_above="@id/guide_layout"
android:layout_centerHorizontal="true"
android:background="@mipmap/search_background"
android:text="立即进入"
android:textColor="@color/white"
android:textSize="30sp"
android:textStyle="bold"
android:layout_marginBottom="40dp"
android:visibility="invisible"/>
</RelativeLayout>
### 主要功能和结构
1. **Activity基本设置**:
- `GuideActivity` 继承自 `AppCompatActivity`,用于显示引导页。
- 在 `onCreate()` 方法中,通过 `setContentView()` 设置布局文件 `activity_guide.xml`,并初始化各种视图组件。
2. **视图初始化**:
- `ViewPager` 控件 `guideVp` 用于展示引导页的内容。
- `TextView` 控件 `tv1`, `tv2`, `tv3` 分别用于显示引导页的页码。
- `Button` 控件 `guideBtn` 是一个跳转按钮,在第三页显示时可见。
3. **资源和适配器**:
- `resId[]` 数组包含了三张引导页图片的资源 ID。
- `viewList` 是用来存放每一页引导页视图的列表。
- `numList` 存放了显示页码的 `TextView` 列表。
4. **ViewPager和适配器**:
- 使用 `GuideAdapter` 作为适配器,将 `viewList` 中的视图设置到 `ViewPager` 中显示。
- 设置 `ViewPager` 的页面切换监听器 `setVPListener()`,根据页面切换更新页码显示和按钮可见性。
5. **页面切换监听器**:
- 在 `onPageSelected()` 方法中,根据当前页面的位置更新页码显示的颜色(选中的为红色,未选中的为白色)。
- 当页面切换到第三页时,设置 `guideBtn` 可见,其他页面时设置为不可见。
6. **按钮点击监听**:
- 当 `guideBtn` 被点击时,创建一个 `Intent` 到 `HomeMenuActivity`,启动新的Activity,并结束当前的 `GuideActivity`。
### 总结
这段代码通过 `ViewPager` 和自定义适配器实现了简单的引导页功能,并通过按钮实现了从引导页跳转到主页面的功能。它利用了 Android 的视图和事件处理机制,提供了用户友好的引导体验。
package com.animee.health;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class AboutActivity extends AppCompatActivity implements View.OnClickListener {
ViewPager aboutVp;
TextView shareTv;
LinearLayout pointLayout;
List<View> viewList;
int[] picIds = {R.mipmap.ab1, R.mipmap.ab2, R.mipmap.ab3, R.mipmap.ab4, R.mipmap.ab5};
List<ImageView> pointList;
@SuppressLint("HandlerLeak")
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 1) {
int currentItem = aboutVp.getCurrentItem();
aboutVp.setCurrentItem(currentItem + 1);
handler.sendEmptyMessageDelayed(1, 5000);
}
}
};
private AboutAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
aboutVp = findViewById(R.id.about_vp);
shareTv = findViewById(R.id.about_tv_share);
pointLayout = findViewById(R.id.about_layout_point);
shareTv.setOnClickListener(this);
viewList = new ArrayList<>();
pointList = new ArrayList<>();
for (int i = 0; i < picIds.length; i++) {
View view = LayoutInflater.from(this).inflate(R.layout.item_aboutvp, null);
ImageView iv = view.findViewById(R.id.item_aboutvp_iv);
iv.setImageResource(picIds[i]);
viewList.add(view);
ImageView pointIv = new ImageView(this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(0, 0, 20, 0);
pointIv.setLayoutParams(lp);
pointIv.setImageResource(R.mipmap.a2);
pointList.add(pointIv);
pointLayout.addView(pointIv);
}
pointList.get(0).setImageResource(R.mipmap.a3);
adapter = new AboutAdapter(viewList);
aboutVp.setAdapter(adapter);
handler.sendEmptyMessageDelayed(1, 5000);
setVPListener();
}
private void setVPListener() {
aboutVp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
for (int i = 0; i < pointList.size(); i++) {
pointList.get(i).setImageResource(R.mipmap.a2);
}
pointList.get(position % pointList.size()).setImageResource(R.mipmap.a3);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
String msg = "健康饮食非常的重要,了解饮食各种营养素和热量,摄入正确的食物,让你变得更健康,想要了解更多么,快来下载健康饮食app吧~~";
intent.putExtra(Intent.EXTRA_TEXT, msg);
startActivity(Intent.createChooser(intent, "健康饮食分享"));
}
}
这段代码实现了一个关于页面 (`AboutActivity`),主要功能包括展示多张图片和实现自动轮播效果。以下是对代码的中文总结:
### 主要功能和结构
1. **Activity基本设置**:
- `AboutActivity` 继承自 `AppCompatActivity`,用于显示关于页面。
- 在 `onCreate()` 方法中,通过 `setContentView()` 设置布局文件 `activity_about.xml`,并初始化各种视图组件。
2. **视图初始化**:
- `ViewPager` 控件 `aboutVp` 用于展示多张图片,并支持左右滑动浏览。
- `TextView` 控件 `shareTv` 用于分享功能。
- `LinearLayout` 控件 `pointLayout` 用于显示图片的指示器(小圆点)。
- `viewList` 是用来存放每一页 `ViewPager` 视图的列表。
- `pointList` 是用来存放显示器小点点 (`ImageView`) 的集合,用于表示当前显示的图片。
3. **图片资源和适配器**:
- `picIds[]` 数组包含了多张图片的资源 ID。
- 在 `for` 循环中,为每张图片创建对应的视图 `View`,并将其加入 `viewList`。
- 同时,创建小圆点 `ImageView`,设置选中和未选中状态,并将其加入 `pointList` 和 `pointLayout` 中显示。
4. **自动轮播功能**:
- 使用 `Handler` 实现定时发送消息,实现图片自动切换功能。在 `handleMessage()` 方法中,根据当前页面位置调用 `aboutVp.setCurrentItem()` 实现页面自动切换。
5. **页面切换监听器**:
- 设置 `ViewPager` 的页面切换监听器 `setVPListener()`,在 `onPageSelected()` 方法中更新小圆点的选中状态,实现与图片同步的指示效果。
6. **点击事件处理**:
- `shareTv` 设置了点击事件监听器,点击时调用系统分享功能,分享预设的文本内容。
### 总结
这段代码实现了一个简单的图片轮播和分享功能的关于页面。它利用了 `ViewPager` 和 `Handler` 来实现图片的自动轮播,通过添加小圆点指示器来提供用户当前图片位置的视觉反馈,同时支持用户点击分享按钮进行内容分享。
Get 项目模板源码
快捷获取方式
网址:网络资源模板 https://www.yuejiaxmz.com/news/view/676339
相关内容
网络学习资源不包括()揭秘地板网站源码,打造个性化家居装饰的利器,网络地板报价
无线网络优化设计方案模板.doc
免费,网络学习资源有哪些?
如何利用好网络资源进行学习
英语学习网络资源.doc
网络安全入门学习资源汇总
网络学习资源汇总
网络教学资源在小学教学中的应用
网络学习资源有哪些?