第二阶段冲刺

第二阶段冲刺

觅踪11

今天在原软件的登陆注册界面基础上进行了修改,美化了界面同时添加了一个启动过场,确定软件以养眼的绿色为主,并决定在原有软件的基础上添加一些更实用的功能。

今天的登陆注册界面美化如下

 

 

 

 

 

 

 

觅踪12

今天在借鉴了其他跑步软件之后觉得对我们的跑步功能进行一个优化,让用户可以选择地图模式或者单纯计时的模式,并且加上开跑倒计时的功能。今天先上网找了一下倒计时功能的样例,照着敲了一下,单独做了一个倒计时的功能,以后再整合起来。

觅踪13

今天开始做单纯计时和里程的功能,因为涉及到了地图开发,但是高德给的模板看不太懂所以从csdn上找了一个大佬的demo进行参考,发现很多地方可以借鉴。

觅踪14

今天成功完成了显示时间和里程的跑步方式,并且将原本的轨迹记录功能优化。明天准备实现将每次跑步的运动轨迹存储到手机上

 

// Generated code from Butter Knife. Do not modify!

package com.james.motion.ui.activity;

 

import android.view.View;

import android.widget.LinearLayout;

import android.widget.TextView;

import androidx.annotation.CallSuper;

import androidx.annotation.UiThread;

import androidx.recyclerview.widget.RecyclerView;

import butterknife.Unbinder;

import butterknife.internal.DebouncingOnClickListener;

import butterknife.internal.Utils;

import com.haibin.calendarview.CalendarLayout;

import com.haibin.calendarview.CalendarView;

import com.james.motion.R;

import java.lang.IllegalStateException;

import java.lang.Override;

 

public class HomeActivity_ViewBinding implements Unbinder {

  private HomeActivity target;

 

  private View view7f090195;

 

  private View view7f0900a4;

 

  private View view7f090122;

 

  private View view7f090121;

 

  @UiThread

  public HomeActivity_ViewBinding(HomeActivity target) {

    this(target, target.getWindow().getDecorView());

  }

 

  @UiThread

  public HomeActivity_ViewBinding(final HomeActivity target, View source) {

    this.target = target;

 

    View view;

    target.tvTitle = Utils.findRequiredViewAsType(source, R.id.tv_title, "field 'tvTitle'", TextView.class);

    view = Utils.findRequiredView(source, R.id.tv_month_day, "field 'mTextMonthDay' and method 'onViewClicked'");

    target.mTextMonthDay = Utils.castView(view, R.id.tv_month_day, "field 'mTextMonthDay'", TextView.class);

    view7f090195 = view;

    view.setOnClickListener(new DebouncingOnClickListener() {

      @Override

      public void doClick(View p0) {

        target.onViewClicked(p0);

      }

    });

    target.mTextYear = Utils.findRequiredViewAsType(source, R.id.tv_year, "field 'mTextYear'", TextView.class);

    target.mTextLunar = Utils.findRequiredViewAsType(source, R.id.tv_lunar, "field 'mTextLunar'", TextView.class);

    target.mTextCurrentDay = Utils.findRequiredViewAsType(source, R.id.tv_current_day, "field 'mTextCurrentDay'", TextView.class);

    target.mCalendarView = Utils.findRequiredViewAsType(source, R.id.calendarView, "field 'mCalendarView'", CalendarView.class);

    target.mRecyclerView = Utils.findRequiredViewAsType(source, R.id.recyclerView, "field 'mRecyclerView'", RecyclerView.class);

    target.mCalendarLayout = Utils.findRequiredViewAsType(source, R.id.calendarLayout, "field 'mCalendarLayout'", CalendarLayout.class);

    target.sport_achievement = Utils.findRequiredViewAsType(source, R.id.sport_achievement, "field 'sport_achievement'", LinearLayout.class);

    view = Utils.findRequiredView(source, R.id.fl_current, "method 'onViewClicked'");

    view7f0900a4 = view;

    view.setOnClickListener(new DebouncingOnClickListener() {

      @Override

      public void doClick(View p0) {

        target.onViewClicked(p0);

      }

    });

    view = Utils.findRequiredView(source, R.id.reRight, "method 'onViewClicked'");

    view7f090122 = view;

    view.setOnClickListener(new DebouncingOnClickListener() {

      @Override

      public void doClick(View p0) {

        target.onViewClicked(p0);

      }

    });

    view = Utils.findRequiredView(source, R.id.reBack, "method 'onViewClicked'");

    view7f090121 = view;

    view.setOnClickListener(new DebouncingOnClickListener() {

      @Override

      public void doClick(View p0) {

        target.onViewClicked(p0);

      }

    });

  }

 

  @Override

  @CallSuper

  public void unbind() {

    HomeActivity target = this.target;

    if (target == null) throw new IllegalStateException("Bindings already cleared.");

    this.target = null;

 

    target.tvTitle = null;

    target.mTextMonthDay = null;

    target.mTextYear = null;

    target.mTextLunar = null;

    target.mTextCurrentDay = null;

    target.mCalendarView = null;

    target.mRecyclerView = null;

    target.mCalendarLayout = null;

    target.sport_achievement = null;

 

    view7f090195.setOnClickListener(null);

    view7f090195 = null;

    view7f0900a4.setOnClickListener(null);

    view7f0900a4 = null;

    view7f090122.setOnClickListener(null);

    view7f090122 = null;

    view7f090121.setOnClickListener(null);

    view7f090121 = null;

  }

}

觅踪15

今天在进行轨迹存储的时候遇到了问题,在添加realm库的依赖后项目会报错unable to find valid certification path to requested target,在上网找了很多方法之后还是不行,大概是说不能访问某个网站,需要导入证书,可是导入证书之后还是会报错,几乎所有的方法都用过了,还是不行,接下来重点解决这个问题

觅踪16

经过自己的尝试还是没有解决unable to find valid certification path to requested target这个问题,最终决定还是寻求大佬的帮助,最后发现是家里不能上外网,导致一些东西不能下载下来,添加了阿里的库之后就能成功运行了。今天也成功的将跑步的轨迹记录存放到realm数据库中

 

// Generated code from Butter Knife. Do not modify!

package com.james.motion.ui.activity;

 

import android.view.View;

import android.widget.TextView;

import androidx.annotation.CallSuper;

import androidx.annotation.UiThread;

import butterknife.Unbinder;

import butterknife.internal.Utils;

import com.flyco.tablayout.CommonTabLayout;

import com.james.motion.R;

import com.james.motion.ui.weight.AMapScrollViewPager;

import java.lang.IllegalStateException;

import java.lang.Override;

 

public class SportRecordDetailsActivity_ViewBinding implements Unbinder {

  private SportRecordDetailsActivity target;

 

  @UiThread

  public SportRecordDetailsActivity_ViewBinding(SportRecordDetailsActivity target) {

    this(target, target.getWindow().getDecorView());

  }

 

  @UiThread

  public SportRecordDetailsActivity_ViewBinding(SportRecordDetailsActivity target, View source) {

    this.target = target;

 

    target.tvTitle = Utils.findRequiredViewAsType(source, R.id.tv_title, "field 'tvTitle'", TextView.class);

    target.commonTabLayout = Utils.findRequiredViewAsType(source, R.id.commonTabLayout, "field 'commonTabLayout'", CommonTabLayout.class);

    target.mViewPager = Utils.findRequiredViewAsType(source, R.id.vp, "field 'mViewPager'", AMapScrollViewPager.class);

  }

 

  @Override

  @CallSuper

  public void unbind() {

    SportRecordDetailsActivity target = this.target;

    if (target == null) throw new IllegalStateException("Bindings already cleared.");

    this.target = null;

 

    target.tvTitle = null;

    target.commonTabLayout = null;

    target.mViewPager = null;

  }

}

觅踪17

在看过大佬给出的demo之后发现跑步软件在主页做一个日历功能记录每天的跑步信息是十分适用的,我们决定像大佬看齐,开始做打卡日历功能,使用了日历的开源框架,可以在界面显示日历,接下来准备将跑步打卡信息在日历上显示出来

觅踪18

在有demo的参考下很快完成了日历记录打卡信息这一部分的功能,接下来准备将各个功能整合到一起

 

// Generated code from Butter Knife. Do not modify!

package com.james.motion.ui.activity;

 

import android.view.View;

import android.widget.ImageView;

import android.widget.TextView;

import androidx.annotation.CallSuper;

import androidx.annotation.UiThread;

import butterknife.Unbinder;

import butterknife.internal.DebouncingOnClickListener;

import butterknife.internal.Utils;

import com.amap.api.maps.MapView;

import com.james.motion.R;

import java.lang.IllegalStateException;

import java.lang.Override;

 

public class SportResultActivity_ViewBinding implements Unbinder {

  private SportResultActivity target;

 

  private View view7f09018f;

 

  private View view7f0900d9;

 

  private View view7f0900d8;

 

  @UiThread

  public SportResultActivity_ViewBinding(SportResultActivity target) {

    this(target, target.getWindow().getDecorView());

  }

 

  @UiThread

  public SportResultActivity_ViewBinding(final SportResultActivity target, View source) {

    this.target = target;

 

    View view;

    target.ivStar1 = Utils.findRequiredViewAsType(source, R.id.ivStar1, "field 'ivStar1'", ImageView.class);

    target.ivStar2 = Utils.findRequiredViewAsType(source, R.id.ivStar2, "field 'ivStar2'", ImageView.class);

    target.ivStar3 = Utils.findRequiredViewAsType(source, R.id.ivStar3, "field 'ivStar3'", ImageView.class);

    view = Utils.findRequiredView(source, R.id.tvResult, "field 'tvResult' and method 'onViewClicked'");

    target.tvResult = Utils.castView(view, R.id.tvResult, "field 'tvResult'", TextView.class);

    view7f09018f = view;

    view.setOnClickListener(new DebouncingOnClickListener() {

      @Override

      public void doClick(View p0) {

        target.onViewClicked(p0);

      }

    });

    target.tvDistancet = Utils.findRequiredViewAsType(source, R.id.tvDistancet, "field 'tvDistancet'", TextView.class);

    target.tvDuration = Utils.findRequiredViewAsType(source, R.id.tvDuration, "field 'tvDuration'", TextView.class);

    target.tvCalorie = Utils.findRequiredViewAsType(source, R.id.tvCalorie, "field 'tvCalorie'", TextView.class);

    target.mapView = Utils.findRequiredViewAsType(source, R.id.mapView, "field 'mapView'", MapView.class);

    view = Utils.findRequiredView(source, R.id.ll_share, "method 'onViewClicked'");

    view7f0900d9 = view;

    view.setOnClickListener(new DebouncingOnClickListener() {

      @Override

      public void doClick(View p0) {

        target.onViewClicked(p0);

      }

    });

    view = Utils.findRequiredView(source, R.id.ll_details, "method 'onViewClicked'");

    view7f0900d8 = view;

    view.setOnClickListener(new DebouncingOnClickListener() {

      @Override

      public void doClick(View p0) {

        target.onViewClicked(p0);

      }

    });

  }

 

  @Override

  @CallSuper

  public void unbind() {

    SportResultActivity target = this.target;

    if (target == null) throw new IllegalStateException("Bindings already cleared.");

    this.target = null;

 

    target.ivStar1 = null;

    target.ivStar2 = null;

    target.ivStar3 = null;

    target.tvResult = null;

    target.tvDistancet = null;

    target.tvDuration = null;

    target.tvCalorie = null;

    target.mapView = null;

 

    view7f09018f.setOnClickListener(null);

    view7f09018f = null;

    view7f0900d9.setOnClickListener(null);

    view7f0900d9 = null;

    view7f0900d8.setOnClickListener(null);

    view7f0900d8 = null;

  }

}

觅踪19

整合的时候因为编码习惯不一样,导致进度缓慢,这是Main.activity代码

 

// Generated code from Butter Knife. Do not modify!

package com.james.motion.ui.activity;

 

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

import androidx.annotation.CallSuper;

import androidx.annotation.UiThread;

import butterknife.Unbinder;

import butterknife.internal.DebouncingOnClickListener;

import butterknife.internal.Utils;

import com.james.motion.R;

import java.lang.IllegalStateException;

import java.lang.Override;

 

public class SportsActivity_ViewBinding implements Unbinder {

  private SportsActivity target;

 

  private View view7f09005b;

 

  @UiThread

  public SportsActivity_ViewBinding(SportsActivity target) {

    this(target, target.getWindow().getDecorView());

  }

 

  @UiThread

  public SportsActivity_ViewBinding(final SportsActivity target, View source) {

    this.target = target;

 

    View view;

    target.tvSportMile = Utils.findRequiredViewAsType(source, R.id.tv_sport_mile, "field 'tvSportMile'", TextView.class);

    target.tvSportCount = Utils.findRequiredViewAsType(source, R.id.tv_sport_count, "field 'tvSportCount'", TextView.class);

    target.tvSportTime = Utils.findRequiredViewAsType(source, R.id.tv_sport_time, "field 'tvSportTime'", TextView.class);

    view = Utils.findRequiredView(source, R.id.btStart, "field 'btStart' and method 'onViewClicked'");

    target.btStart = Utils.castView(view, R.id.btStart, "field 'btStart'", Button.class);

    view7f09005b = view;

    view.setOnClickListener(new DebouncingOnClickListener() {

      @Override

      public void doClick(View p0) {

        target.onViewClicked();

      }

    });

  }

 

  @Override

  @CallSuper

  public void unbind() {

    SportsActivity target = this.target;

    if (target == null) throw new IllegalStateException("Bindings already cleared.");

    this.target = null;

 

    target.tvSportMile = null;

    target.tvSportCount = null;

    target.tvSportTime = null;

    target.btStart = null;

 

    view7f09005b.setOnClickListener(null);

    view7f09005b = null;

  }

}

觅踪20

我们的几个功能已经整合好了,并且可以打包apk,目前软件还存在一些问题,比如手机熄屏后定位会停止,这些会在日后继续解决,休息休息....

 

posted @ 2020-05-27 16:05  dululudululu  阅读(195)  评论(0编辑  收藏  举报