Android课程设计(健康管理软件开发)
生活随笔
收集整理的這篇文章主要介紹了
Android课程设计(健康管理软件开发)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Android 課程設計
Android開發使用軟件(RecyclerView+ListView+SQLite)
一個實用的健康管理軟件,可以查詢各種食物的熱量,每天健身打卡,發表動態,可以點擊圖片鏈接進入淘寶首頁,在個人中心可以修改收貨地址,添加購物車,記錄健康資料、每日飲食(收貨地址和購物車僅關聯此軟件)
實現的功能
使用框架
1.使用第三方圖像框架 Fresco 圖片圓形設置(頭像)
1.添加依賴
dependencies {compile 'com.facebook.fresco:fresco:0.14.1' }2.初始化
public class MyApplication extends Application{@Overridepublic void onCreate() {super.onCreate();Fresco.initialize(this);} }3.修改 manifest
android:name=".MyApplication"4.添加網絡權限
<uses-permission android:name="android.permission.INTERNET"/>5.文件布局
xmlns:fresco="http://schemas.android.com/apk/res-auto"使用
<com.facebook.drawee.view.SimpleDraweeViewandroid:id="@+id/headimg"android:layout_width="50dp"android:layout_height="50dp"android:layout_marginTop="160dp"app:layout_constraintStart_toStartOf="@+id/textView6"app:layout_constraintTop_toTopOf="@+id/imageView6"app:srcCompat="@drawable/headimg"android:background="@drawable/headimg"fresco:roundAsCircle="true"fresco:roundedCornerRadius="20dp" />6.使用
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.headimg);Uri uri = Uri.parse("headimg.jpg");draweeView.setImageURI(uri);1.使用第三方框架banner 圖片輪播效果
1.依賴
2.添加權限到 AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" /> //網絡權限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> //讀取SD卡3.在布局文件中添加Banner
<com.youth.banner.Bannerandroid:id="@+id/banner"android:layout_width="match_parent"android:layout_height="100dp"android:layout_marginTop="50dp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/imageButton" />4.實現
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_shop);initView(); } public void initView() {mBanner = findViewById(R.id.mBanner);//圖片資源int[] imageResourceID = new int[]{R.mipmap.i1, R.mipmap.i2, R.mipmap.i3, R.mipmap.i4,R.mipmap.i5, R.mipmap.i6};List<Integer> imgeList = new ArrayList<>();//輪播標題String[] mtitle = new String[]{"圖片1", "圖片2", "圖片3", "圖片4","圖片5","圖片6"};List<String> titleList = new ArrayList<>();for (int i = 0; i < imageResourceID.length; i++) {imgeList.add(imageResourceID[i]);//圖片資源循環titleList.add(mtitle[i]);//標題循環設置//設置圖片加載器,通過Glide加載圖片mBanner.setImageLoader(new ImageLoader() {@Overridepublic void displayImage(Context context, Object path, ImageView imageView) {Glide.with(ShopActivity.this).load(path).into(imageView);}});//輪播的動畫效果mBanner.setBannerAnimation(Transformer.Accordion);mBanner.setImages(imgeList);//設置圖片資源mBanner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);//設置banner顯示樣式(帶標題的樣式)mBanner.setBannerTitles(titleList); //設置標題集合(當banner樣式有顯示title時)//設置指示器位置mBanner.setIndicatorGravity(BannerConfig.CENTER);mBanner.setDelayTime(1000);//設置輪播時間3秒切換下一圖mBanner.setOnBannerListener(this);//設置監聽mBanner.start();//開始進行banner渲染}}@Overrideprotected void onStart() {super.onStart();mBanner.startAutoPlay();//開始輪播}@Overrideprotected void onStop() {super.onStop();mBanner.stopAutoPlay();//結束輪播}//對輪播圖設置點擊監聽事件@Overridepublic void OnBannerClick(int position) {Toast.makeText(this, "你點擊了第" + (position + 1) + "張輪播圖", Toast.LENGTH_SHORT).show();}UI設計
1.帶有彈出收縮動畫的扇形菜單
插入鏈接與圖片
參考博客
鏈接: Android菜單動畫扇形收縮.
1.布局文件
2.Activity
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_show);imgPublish = (ImageView) findViewById(R.id.img_publish);imgPublish.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.img_publish:if (!isMenuOpen) {showOpenAnim(80);imgPublish.setImageResource(R.mipmap.cd2_2);}else {showCloseAnim(80);imgPublish.setImageResource(R.mipmap.cd2_2);}break;}}//打開扇形菜單的屬性動畫, dp為半徑長度private void showOpenAnim(int dp) {button9.setVisibility(View.VISIBLE);button10.setVisibility(View.VISIBLE);//for循環來開始小圖標的出現動畫for (int i = 0; i < buttons.size(); i++) {AnimatorSet set = new AnimatorSet();//標題1與x軸負方向角度為20°,標題2為100°,轉換為弧度double a = -Math.cos(20 * Math.PI / 180 * (i * 2 + 1));double b = -Math.sin(20 * Math.PI / 180 * (i * 2 + 1));double x = a * dip2px(dp);double y = b * dip2px(dp);set.playTogether(ObjectAnimator.ofFloat(buttons.get(i), "translationX", (float) (x * 0.25), (float) x),ObjectAnimator.ofFloat(buttons.get(i), "translationY", (float) (y * 0.25), (float) y), ObjectAnimator.ofFloat(buttons.get(i), "alpha", 0, 1).setDuration(2000));set.setInterpolator(new BounceInterpolator());set.setDuration(500).setStartDelay(100);set.start();set.addListener(new Animator.AnimatorListener() {@Overridepublic void onAnimationStart(Animator animation) {}@Overridepublic void onAnimationEnd(Animator animation) {//菜單狀態置打開isMenuOpen = true;}@Overridepublic void onAnimationCancel(Animator animation) {}@Overridepublic void onAnimationRepeat(Animator animation) {}});}//轉動加號大圖標本身45°ObjectAnimator rotate = ObjectAnimator.ofFloat(imgPublish, "rotation", 0, 90).setDuration(300);rotate.setInterpolator(new BounceInterpolator());rotate.start();}//關閉扇形菜單的屬性動畫,參數與打開時相反private void showCloseAnim(int dp) {//for循環來開始小圖標的出現動畫for (int i = 0; i < buttons.size(); i++) {AnimatorSet set = new AnimatorSet();double a = -Math.cos(20 * Math.PI / 180 * (i * 2 + 1));double b = -Math.sin(20 * Math.PI / 180 * (i * 2 + 1));double x = a * dip2px(dp);double y = b * dip2px(dp);set.playTogether(ObjectAnimator.ofFloat(buttons.get(i), "translationX", (float) x, (float) (x * 0.25)),ObjectAnimator.ofFloat(buttons.get(i), "translationY", (float) y, (float) (y * 0.25)),ObjectAnimator.ofFloat(buttons.get(i), "alpha", 1, 0).setDuration(2000)); // set.setInterpolator(new AccelerateInterpolator());set.setDuration(500);set.start();set.addListener(new Animator.AnimatorListener() {@Overridepublic void onAnimationStart(Animator animation) {}@Overridepublic void onAnimationEnd(Animator animation) {button9.setVisibility(View.GONE);button10.setVisibility(View.GONE);//菜單狀態置關閉isMenuOpen = false;}@Overridepublic void onAnimationCancel(Animator animation) {}@Overridepublic void onAnimationRepeat(Animator animation) {}});}//轉動加號大圖標本身45°ObjectAnimator rotate = ObjectAnimator.ofFloat(imgPublish, "rotation", 0, 90).setDuration(300);rotate.setInterpolator(new BounceInterpolator());rotate.start();}private int dip2px(int value) {float density = getResources().getDisplayMetrics().density;return (int) (density * value + 0.5f);}演示
- 點擊進入
自動跳轉
- 首頁
Activity跳轉傳值,獲取登錄時輸入的用戶名
-RecyclerView顯示食物列表
查詢
- 首頁
-RecyclerView顯示打卡記錄
1.添加打卡
2.勾選checkbox進行打卡,彈出提示
- 發布動態頁面
-EditText輸入
1.調用圖庫插入圖片
2.插入標簽
-
商店頁面
WebView,第三方框架banner 圖片輪播效果(未顯示)
1.點擊圖片鏈接進入淘寶首頁
-
個人中心
RecyclerView顯示動態,三種類型Dialog應用
1.復選框顯示購物車
2.半自定義記錄每日飲食
3.查看健康記錄
4.單選框設置收貨地址
改進:
1.EditText圖文混排依然存在問題,可以調用圖庫但圖片不能顯示
總結
以上是生活随笔為你收集整理的Android课程设计(健康管理软件开发)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中职学校计算机实训室简介,中职学校计算机
- 下一篇: mysql sysbench_MySQL