list6 = new ArrayList<>();
- list6.add("接单");
- list6.add("打包");
- list6.add("出发");
- list6.add("送单");
- list6.add("完成");
- list6.add("支付");
- setpview6.setStepsViewIndicatorComplectingPosition(4)//设置完成的步数
- .setStepViewTexts(list6)//总步骤
- .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getBaseContext(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
- .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getBaseContext(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
- .setStepViewComplectedTextColor(ContextCompat.getColor(getBaseContext(), android.R.color.white))//设置StepsView text完成线的颜色
- .setStepViewUnComplectedTextColor(ContextCompat.getColor(getBaseContext(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
- .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getBaseContext(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
- .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getBaseContext(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
- .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getBaseContext(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+ VerticalStepViewReverseFragment mVerticalStepViewFragment = new VerticalStepViewReverseFragment();
+ getFragmentManager().beginTransaction().replace(R.id.container, mVerticalStepViewFragment).commit();
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
- getMenuInflater().inflate(R.menu.menu_draw_canvas, menu);
+ getMenuInflater().inflate(R.menu.menu_main_activity, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
- if(item.getItemId() == R.id.action_drawcanvas)
+ VerticalStepViewReverseFragment mVerticalStepViewFragment;
+ DrawCanvasFragment mDrawCanvasFragment;
+ HorizontalStepviewFragment mHorizontalStepviewFragment;
+ VerticalStepViewSnapshotFragment mVerticalStepViewSnapshotFragment;
+ VerticalStepViewFrowardFragment mVerticalStepViewReverseFragment;
+ FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
+ int itemId = item.getItemId();
+ switch(itemId)
{
- Intent intent = new Intent(this,DrawCanvasActivity.class);
- startActivity(intent);
- return true;
+ case R.id.action_horizontal_stepview:
+ mHorizontalStepviewFragment = new HorizontalStepviewFragment();
+ fragmentTransaction.replace(R.id.container, mHorizontalStepviewFragment).commit();
+ break;
+
+ case R.id.action_drawcanvas:
+ mDrawCanvasFragment = new DrawCanvasFragment();
+ fragmentTransaction.replace(R.id.container, mDrawCanvasFragment).commit();
+ break;
+ case R.id.action_vertical_reverse:
+ mVerticalStepViewFragment = new VerticalStepViewReverseFragment();
+ fragmentTransaction.replace(R.id.container, mVerticalStepViewFragment).commit();
+ break;
+
+ case R.id.action_vertical_forward:
+ mVerticalStepViewReverseFragment = new VerticalStepViewFrowardFragment();
+ fragmentTransaction.replace(R.id.container, mVerticalStepViewReverseFragment).commit();
+ break;
+
+ case R.id.action_vertical_stepview_snapshot:
+ mVerticalStepViewSnapshotFragment = new VerticalStepViewSnapshotFragment();
+ fragmentTransaction.replace(R.id.container, mVerticalStepViewSnapshotFragment).commit();
+ break;
+
}
return super.onOptionsItemSelected(item);
}
-
-
}
\ No newline at end of file
diff --git a/app/src/main/java/com/baoyachi/stepview/demo/DrawCanvasActivity.java b/app/src/main/java/com/baoyachi/stepview/demo/fragment/DrawCanvasFragment.java
similarity index 83%
rename from app/src/main/java/com/baoyachi/stepview/demo/DrawCanvasActivity.java
rename to app/src/main/java/com/baoyachi/stepview/demo/fragment/DrawCanvasFragment.java
index 41c2910..f172467 100644
--- a/app/src/main/java/com/baoyachi/stepview/demo/DrawCanvasActivity.java
+++ b/app/src/main/java/com/baoyachi/stepview/demo/fragment/DrawCanvasFragment.java
@@ -1,5 +1,6 @@
-package com.baoyachi.stepview.demo;
+package com.baoyachi.stepview.demo.fragment;
+import android.app.Fragment;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
@@ -8,24 +9,26 @@
import android.graphics.Path;
import android.os.Bundle;
import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
+import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
+
+import com.baoyachi.stepview.demo.R;
/**
- * 日期:16/6/22 20:45
+ * 日期:16/6/24 20:00
*
* 描述:
*/
-public class DrawCanvasActivity extends AppCompatActivity
+public class DrawCanvasFragment extends Fragment
{
+ View mView;
+ @Nullable
@Override
- protected void onCreate(@Nullable Bundle savedInstanceState)
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
- super.onCreate(savedInstanceState);
- RectView myView = new RectView(this);
- setContentView(myView);
+ return new RectView(container.getContext());
}
-
public class RectView extends View
{
diff --git a/app/src/main/java/com/baoyachi/stepview/demo/fragment/HorizontalStepviewFragment.java b/app/src/main/java/com/baoyachi/stepview/demo/fragment/HorizontalStepviewFragment.java
new file mode 100644
index 0000000..c618600
--- /dev/null
+++ b/app/src/main/java/com/baoyachi/stepview/demo/fragment/HorizontalStepviewFragment.java
@@ -0,0 +1,177 @@
+package com.baoyachi.stepview.demo.fragment;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.content.ContextCompat;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.baoyachi.stepview.HorizontalStepView;
+import com.baoyachi.stepview.demo.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 日期:16/6/24 20:08
+ *
+ * 描述:
+ */
+public class HorizontalStepviewFragment extends Fragment
+{
+ View mView;
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+ {
+ mView = View.inflate(container.getContext(), R.layout.fragment_horizontal_stepview, null);
+ showSetpView0();
+ showSetpView1();
+ showSetpView2();
+ showSetpView3();
+ showSetpView4();
+ showSetpView5();
+ showSetpView6();
+ return mView;
+ }
+
+
+ private void showSetpView0()
+ {
+ HorizontalStepView setpview0 = (HorizontalStepView) mView.findViewById(R.id.step_view0);
+ List list0 = new ArrayList<>();
+ list0.add("接单");
+ list0.add("打包");
+ list0.add("出发");
+ list0.add("送单");
+ list0.add("完成");
+ list0.add("支付");
+ setpview0.setStepsViewIndicatorComplectingPosition(2)//设置完成的步数
+ .setStepViewTexts(list0)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+ }
+
+
+ private void showSetpView1()
+ {
+ List list1 = new ArrayList<>();
+ list1.add("接单");
+ HorizontalStepView setpview1 = (HorizontalStepView) mView.findViewById(R.id.step_view1);
+ setpview1.setStepsViewIndicatorComplectingPosition(0)//设置完成的步数
+ .setStepViewTexts(list1)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+ }
+
+ private void showSetpView2()
+ {
+ List list2 = new ArrayList<>();
+ list2.add("接单");
+ list2.add("打包");
+ HorizontalStepView setpview2 = (HorizontalStepView) mView.findViewById(R.id.step_view2);
+ setpview2.setStepsViewIndicatorComplectingPosition(0)//设置完成的步数
+ .setStepViewTexts(list2)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+ }
+
+ private void showSetpView3()
+ {
+ List list3 = new ArrayList<>();
+ list3.add("接单");
+ list3.add("打包");
+ list3.add("出发");
+ HorizontalStepView setpview3 = (HorizontalStepView) mView.findViewById(R.id.step_view3);
+ setpview3.setStepsViewIndicatorComplectingPosition(1)//设置完成的步数
+ .setStepViewTexts(list3)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+ }
+
+ private void showSetpView4()
+ {
+ List list4 = new ArrayList<>();
+ list4.add("接单");
+ list4.add("打包");
+ list4.add("出发");
+ list4.add("送单");
+ HorizontalStepView setpview4 = (HorizontalStepView) mView.findViewById(R.id.step_view4);
+ setpview4.setStepsViewIndicatorComplectingPosition(2)//设置完成的步数
+ .setStepViewTexts(list4)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+
+
+ }
+
+ private void showSetpView5()
+ {
+ List list5 = new ArrayList<>();
+ list5.add("接单");
+ list5.add("打包");
+ list5.add("出发");
+ list5.add("送单");
+ list5.add("完成");
+ HorizontalStepView setpview5 = (HorizontalStepView) mView.findViewById(R.id.step_view5);
+ setpview5.setStepsViewIndicatorComplectingPosition(3)//设置完成的步数
+ .setStepViewTexts(list5)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+ }
+
+ private void showSetpView6()
+ {
+ HorizontalStepView setpview6 = (HorizontalStepView) mView.findViewById(R.id.step_view6);
+
+ List list6 = new ArrayList<>();
+ list6.add("接单");
+ list6.add("打包");
+ list6.add("出发");
+ list6.add("送单");
+ list6.add("完成");
+ list6.add("支付");
+ setpview6.setStepsViewIndicatorComplectingPosition(4)//设置完成的步数
+ .setStepViewTexts(list6)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+ }
+}
diff --git a/app/src/main/java/com/baoyachi/stepview/demo/fragment/VerticalStepViewFrowardFragment.java b/app/src/main/java/com/baoyachi/stepview/demo/fragment/VerticalStepViewFrowardFragment.java
new file mode 100644
index 0000000..29e6491
--- /dev/null
+++ b/app/src/main/java/com/baoyachi/stepview/demo/fragment/VerticalStepViewFrowardFragment.java
@@ -0,0 +1,68 @@
+package com.baoyachi.stepview.demo.fragment;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.content.ContextCompat;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.baoyachi.stepview.VerticalStepView;
+import com.baoyachi.stepview.demo.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 日期:16/6/24 19:39
+ *
+ * 描述:正向画流程,默认是反向 you shoudle use this method VerticalStepView.reverseDraw(false);
+ */
+public class VerticalStepViewFrowardFragment extends Fragment
+{
+ View mView;
+ private VerticalStepView mSetpview0;
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
+ {
+ mView = mView.inflate(getActivity(), R.layout.fragment_vertical_stepview, null);
+ return mView;
+ }
+
+ @Override
+ public void onStart()
+ {
+ super.onStart();
+ mSetpview0 = (VerticalStepView) mView.findViewById(R.id.step_view0);
+
+ List list0 = new ArrayList<>();
+ list0.add("您已提交定单,等待系统确认");
+ list0.add("您的商品需要从外地调拨,我们会尽快处理,请耐心等待");
+ list0.add("您的订单已经进入亚洲第一仓储中心1号库准备出库");
+ list0.add("您的订单预计6月23日送达您的手中,618期间促销火爆,可能影响送货时间,请您谅解,我们会第一时间送到您的手中");
+ list0.add("您的订单已打印完毕");
+ list0.add("您的订单已拣货完成");
+ list0.add("扫描员已经扫描");
+ list0.add("打包成功");
+ list0.add("您的订单在京东【华东外单分拣中心】发货完成,准备送往京东【北京通州分拣中心】");
+ list0.add("您的订单在京东【北京通州分拣中心】分拣完成");
+ list0.add("您的订单在京东【北京通州分拣中心】发货完成,准备送往京东【北京中关村大厦站】");
+ list0.add("您的订单在京东【北京中关村大厦站】验货完成,正在分配配送员");
+ list0.add("配送员【包牙齿】已出发,联系电话【130-0000-0000】,感谢您的耐心等待,参加评价还能赢取好多礼物哦");
+ list0.add("感谢你在京东购物,欢迎你下次光临!");
+ mSetpview0.setStepsViewIndicatorComplectingPosition(list0.size() - 2)//设置完成的步数
+ .reverseDraw(false)//default is true
+ .setStepViewTexts(list0)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+
+ }
+}
diff --git a/app/src/main/java/com/baoyachi/stepview/demo/fragment/VerticalStepViewReverseFragment.java b/app/src/main/java/com/baoyachi/stepview/demo/fragment/VerticalStepViewReverseFragment.java
new file mode 100644
index 0000000..d3dc1a6
--- /dev/null
+++ b/app/src/main/java/com/baoyachi/stepview/demo/fragment/VerticalStepViewReverseFragment.java
@@ -0,0 +1,68 @@
+package com.baoyachi.stepview.demo.fragment;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.content.ContextCompat;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.baoyachi.stepview.VerticalStepView;
+import com.baoyachi.stepview.demo.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 日期:16/6/24 19:39
+ *
+ * 描述:默认是反向画 default this VerticalStepViewIndicator draw is reverse
+ */
+public class VerticalStepViewReverseFragment extends Fragment
+{
+ View mView;
+ private VerticalStepView mSetpview0;
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
+ {
+ mView = mView.inflate(getActivity(), R.layout.fragment_vertical_stepview, null);
+ return mView;
+ }
+
+ @Override
+ public void onStart()
+ {
+ super.onStart();
+ mSetpview0 = (VerticalStepView) mView.findViewById(R.id.step_view0);
+
+ List list0 = new ArrayList<>();
+ list0.add("您已提交定单,等待系统确认");
+ list0.add("您的商品需要从外地调拨,我们会尽快处理,请耐心等待");
+ list0.add("您的订单已经进入亚洲第一仓储中心1号库准备出库");
+ list0.add("您的订单预计6月23日送达您的手中,618期间促销火爆,可能影响送货时间,请您谅解,我们会第一时间送到您的手中");
+ list0.add("您的订单已打印完毕");
+ list0.add("您的订单已拣货完成");
+ list0.add("扫描员已经扫描");
+ list0.add("打包成功");
+ list0.add("您的订单在京东【华东外单分拣中心】发货完成,准备送往京东【北京通州分拣中心】");
+ list0.add("您的订单在京东【北京通州分拣中心】分拣完成");
+ list0.add("您的订单在京东【北京通州分拣中心】发货完成,准备送往京东【北京中关村大厦站】");
+ list0.add("您的订单在京东【北京中关村大厦站】验货完成,正在分配配送员");
+ list0.add("配送员【包牙齿】已出发,联系电话【130-0000-0000】,感谢您的耐心等待,参加评价还能赢取好多礼物哦");
+ list0.add("感谢你在京东购物,欢迎你下次光临!");
+ mSetpview0.setStepsViewIndicatorComplectingPosition(list0.size() - 2)//设置完成的步数
+ .setStepViewTexts(list0)//总步骤
+ .setLinePaddingProportion(0.85f)//设置indicator线与线间距的比例系数
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+
+ }
+}
diff --git a/app/src/main/java/com/baoyachi/stepview/demo/fragment/VerticalStepViewSnapshotFragment.java b/app/src/main/java/com/baoyachi/stepview/demo/fragment/VerticalStepViewSnapshotFragment.java
new file mode 100644
index 0000000..b1beaec
--- /dev/null
+++ b/app/src/main/java/com/baoyachi/stepview/demo/fragment/VerticalStepViewSnapshotFragment.java
@@ -0,0 +1,148 @@
+package com.baoyachi.stepview.demo.fragment;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.content.ContextCompat;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.baoyachi.stepview.VerticalStepView;
+import com.baoyachi.stepview.demo.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 日期:16/6/24 20:15
+ *
+ * 描述:
+ */
+public class VerticalStepViewSnapshotFragment extends Fragment
+{
+ View mView;
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+ {
+ mView = View.inflate(container.getContext(), R.layout.fragment_vertical_stepview_snapshot,null);
+ return mView;
+ }
+
+ @Override
+ public void onStart()
+ {
+ super.onStart();
+
+ VerticalStepView setpview1 = (VerticalStepView) mView.findViewById(R.id.step_view1);
+ List list1 = new ArrayList<>();
+ list1.add("");
+ list1.add("");
+ list1.add("");
+ list1.add("");
+ list1.add("");
+ setpview1.setStepsViewIndicatorComplectingPosition(4)//设置完成的步数
+ .setStepViewTexts(list1)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+
+ VerticalStepView setpview2 = (VerticalStepView) mView.findViewById(R.id.step_view2);
+ List list2 = new ArrayList<>();
+ list2.add("");
+ list2.add("");
+ list2.add("");
+ list2.add("");
+ setpview2.setStepsViewIndicatorComplectingPosition(3)//设置完成的步数
+ .setStepViewTexts(list2)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+
+ VerticalStepView setpview3 = (VerticalStepView) mView.findViewById(R.id.step_view3);
+ List list3 = new ArrayList<>();
+ list3.add("");
+ list3.add("");
+ list3.add("");
+ setpview3.setStepsViewIndicatorComplectingPosition(2)//设置完成的步数
+ .setStepViewTexts(list3)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+
+ VerticalStepView setpview4 = (VerticalStepView) mView.findViewById(R.id.step_view4);
+ List list4 = new ArrayList<>();
+ list4.add("");
+ list4.add("");
+ setpview4.setStepsViewIndicatorComplectingPosition(1)//设置完成的步数
+ .setStepViewTexts(list4)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+
+ VerticalStepView setpview5 = (VerticalStepView) mView.findViewById(R.id.step_view5);
+ List list5 = new ArrayList<>();
+ list5.add("");
+ list5.add("");
+ setpview5.setStepsViewIndicatorComplectingPosition(0)//设置完成的步数
+ .setStepViewTexts(list5)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+
+ VerticalStepView setpview6 = (VerticalStepView) mView.findViewById(R.id.step_view6);
+ List list6 = new ArrayList<>();
+ list6.add("");
+ setpview6.setStepsViewIndicatorComplectingPosition(0)//设置完成的步数
+ .setStepViewTexts(list6)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+
+
+ VerticalStepView setpview7 = (VerticalStepView) mView.findViewById(R.id.step_view7);
+ List list7 = new ArrayList<>();
+ list7.add("");
+ list7.add("");
+ list7.add("");
+ list7.add("");
+ list7.add("");
+ list7.add("");
+ list7.add("");
+ setpview7.setStepsViewIndicatorComplectingPosition(3)//设置完成的步数
+ .setStepViewTexts(list7)//总步骤
+ .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
+ .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
+ .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
+ .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
+ .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
+ .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
+ .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
+ }
+}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 086f2d3..7834504 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,96 +1,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="match_parent"/>
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_horizontal_stepview.xml b/app/src/main/res/layout/fragment_horizontal_stepview.xml
new file mode 100644
index 0000000..7b1fdf5
--- /dev/null
+++ b/app/src/main/res/layout/fragment_horizontal_stepview.xml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_vertical_stepview.xml b/app/src/main/res/layout/fragment_vertical_stepview.xml
new file mode 100644
index 0000000..fb3f545
--- /dev/null
+++ b/app/src/main/res/layout/fragment_vertical_stepview.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_vertical_stepview_snapshot.xml b/app/src/main/res/layout/fragment_vertical_stepview_snapshot.xml
new file mode 100644
index 0000000..da84176
--- /dev/null
+++ b/app/src/main/res/layout/fragment_vertical_stepview_snapshot.xml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_draw_canvas.xml b/app/src/main/res/menu/menu_draw_canvas.xml
deleted file mode 100644
index ac0d352..0000000
--- a/app/src/main/res/menu/menu_draw_canvas.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/app/src/main/res/menu/menu_main_activity.xml b/app/src/main/res/menu/menu_main_activity.xml
new file mode 100644
index 0000000..3ed1281
--- /dev/null
+++ b/app/src/main/res/menu/menu_main_activity.xml
@@ -0,0 +1,36 @@
+
diff --git a/art/forward_indicator.png b/art/forward_indicator.png
new file mode 100644
index 0000000..fb6de3f
Binary files /dev/null and b/art/forward_indicator.png differ
diff --git a/art/jd_reverse_express.png b/art/jd_reverse_express.png
new file mode 100644
index 0000000..2bb760c
Binary files /dev/null and b/art/jd_reverse_express.png differ
diff --git a/art/reverse_indicator.png b/art/reverse_indicator.png
new file mode 100644
index 0000000..8010a48
Binary files /dev/null and b/art/reverse_indicator.png differ
diff --git a/art/vertical_snapshot.png b/art/vertical_snapshot.png
new file mode 100644
index 0000000..12eab96
Binary files /dev/null and b/art/vertical_snapshot.png differ
diff --git a/art/vertical_snapshot_reverse.png b/art/vertical_snapshot_reverse.png
new file mode 100644
index 0000000..6c4ba6d
Binary files /dev/null and b/art/vertical_snapshot_reverse.png differ
diff --git a/art/vertical_stepview.gif b/art/vertical_stepview.gif
new file mode 100644
index 0000000..98b1f19
Binary files /dev/null and b/art/vertical_stepview.gif differ
diff --git a/stepview/src/main/java/com/baoyachi/stepview/StepView.java b/stepview/src/main/java/com/baoyachi/stepview/HorizontalStepView.java
similarity index 76%
rename from stepview/src/main/java/com/baoyachi/stepview/StepView.java
rename to stepview/src/main/java/com/baoyachi/stepview/HorizontalStepView.java
index caa5d9e..cc6f141 100644
--- a/stepview/src/main/java/com/baoyachi/stepview/StepView.java
+++ b/stepview/src/main/java/com/baoyachi/stepview/HorizontalStepView.java
@@ -19,28 +19,27 @@
*
* 描述:StepView
*/
-public class StepView extends LinearLayout implements StepsViewIndicator.OnDrawIndicatorListener
+public class HorizontalStepView extends LinearLayout implements HorizontalStepsViewIndicator.OnDrawIndicatorListener
{
private RelativeLayout mTextContainer;
- private StepsViewIndicator mStepsViewIndicator;
+ private HorizontalStepsViewIndicator mStepsViewIndicator;
private List mTexts;
private int mComplectingPosition;
private int mUnComplectedTextColor = ContextCompat.getColor(getContext(), R.color.uncompleted_text_color);//定义默认未完成文字的颜色;
private int mComplectedTextColor = ContextCompat.getColor(getContext(), android.R.color.white);//定义默认完成文字的颜色;
-
- public StepView(Context context)
+ public HorizontalStepView(Context context)
{
this(context, null);
}
- public StepView(Context context, AttributeSet attrs)
+ public HorizontalStepView(Context context, AttributeSet attrs)
{
this(context, attrs, 0);
}
- public StepView(Context context, AttributeSet attrs, int defStyleAttr)
+ public HorizontalStepView(Context context, AttributeSet attrs, int defStyleAttr)
{
super(context, attrs, defStyleAttr);
init();
@@ -48,8 +47,8 @@ public StepView(Context context, AttributeSet attrs, int defStyleAttr)
private void init()
{
- View rootView = LayoutInflater.from(getContext()).inflate(R.layout.widget_stepsview, this);
- mStepsViewIndicator = (StepsViewIndicator) rootView.findViewById(R.id.steps_indicator);
+ View rootView = LayoutInflater.from(getContext()).inflate(R.layout.widget_horizontal_stepsview, this);
+ mStepsViewIndicator = (HorizontalStepsViewIndicator) rootView.findViewById(R.id.steps_indicator);
mStepsViewIndicator.setOnDrawListener(this);
mTextContainer = (RelativeLayout) rootView.findViewById(R.id.rl_text_container);
mTextContainer.removeAllViews();
@@ -61,7 +60,7 @@ private void init()
* @param texts
* @return
*/
- public StepView setStepViewTexts(List texts)
+ public HorizontalStepView setStepViewTexts(List texts)
{
mTexts = texts;
mStepsViewIndicator.setStepNum(mTexts.size());
@@ -74,7 +73,7 @@ public StepView setStepViewTexts(List texts)
* @param complectingPosition
* @return
*/
- public StepView setStepsViewIndicatorComplectingPosition(int complectingPosition)
+ public HorizontalStepView setStepsViewIndicatorComplectingPosition(int complectingPosition)
{
mComplectingPosition = complectingPosition;
mStepsViewIndicator.setComplectingPosition(complectingPosition);
@@ -87,7 +86,7 @@ public StepView setStepsViewIndicatorComplectingPosition(int complectingPosition
* @param unComplectedTextColor
* @return
*/
- public StepView setStepViewUnComplectedTextColor(int unComplectedTextColor)
+ public HorizontalStepView setStepViewUnComplectedTextColor(int unComplectedTextColor)
{
mUnComplectedTextColor = unComplectedTextColor;
return this;
@@ -99,7 +98,7 @@ public StepView setStepViewUnComplectedTextColor(int unComplectedTextColor)
* @param complectedTextColor
* @return
*/
- public StepView setStepViewComplectedTextColor(int complectedTextColor)
+ public HorizontalStepView setStepViewComplectedTextColor(int complectedTextColor)
{
this.mComplectedTextColor = complectedTextColor;
return this;
@@ -111,7 +110,7 @@ public StepView setStepViewComplectedTextColor(int complectedTextColor)
* @param unCompletedLineColor
* @return
*/
- public StepView setStepsViewIndicatorUnCompletedLineColor(int unCompletedLineColor)
+ public HorizontalStepView setStepsViewIndicatorUnCompletedLineColor(int unCompletedLineColor)
{
mStepsViewIndicator.setUnCompletedLineColor(unCompletedLineColor);
return this;
@@ -123,7 +122,7 @@ public StepView setStepsViewIndicatorUnCompletedLineColor(int unCompletedLineCol
* @param completedLineColor
* @return
*/
- public StepView setStepsViewIndicatorCompletedLineColor(int completedLineColor)
+ public HorizontalStepView setStepsViewIndicatorCompletedLineColor(int completedLineColor)
{
mStepsViewIndicator.setCompletedLineColor(completedLineColor);
return this;
@@ -134,7 +133,7 @@ public StepView setStepsViewIndicatorCompletedLineColor(int completedLineColor)
*
* @param defaultIcon
*/
- public StepView setStepsViewIndicatorDefaultIcon(Drawable defaultIcon)
+ public HorizontalStepView setStepsViewIndicatorDefaultIcon(Drawable defaultIcon)
{
mStepsViewIndicator.setDefaultIcon(defaultIcon);
return this;
@@ -145,7 +144,7 @@ public StepView setStepsViewIndicatorDefaultIcon(Drawable defaultIcon)
*
* @param completeIcon
*/
- public StepView setStepsViewIndicatorCompleteIcon(Drawable completeIcon)
+ public HorizontalStepView setStepsViewIndicatorCompleteIcon(Drawable completeIcon)
{
mStepsViewIndicator.setCompleteIcon(completeIcon);
return this;
@@ -156,17 +155,16 @@ public StepView setStepsViewIndicatorCompleteIcon(Drawable completeIcon)
*
* @param attentionIcon
*/
- public StepView setStepsViewIndicatorAttentionIcon(Drawable attentionIcon)
+ public HorizontalStepView setStepsViewIndicatorAttentionIcon(Drawable attentionIcon)
{
mStepsViewIndicator.setAttentionIcon(attentionIcon);
return this;
}
-
@Override
public void ondrawIndicator()
{
- List complectedXPosition = mStepsViewIndicator.getComplectedXPosition();
+ List complectedXPosition = mStepsViewIndicator.getCircleCenterPointPositionList();
if(mTexts != null)
{
for(int i = 0; i < mTexts.size(); i++)
diff --git a/stepview/src/main/java/com/baoyachi/stepview/StepsViewIndicator.java b/stepview/src/main/java/com/baoyachi/stepview/HorizontalStepsViewIndicator.java
similarity index 67%
rename from stepview/src/main/java/com/baoyachi/stepview/StepsViewIndicator.java
rename to stepview/src/main/java/com/baoyachi/stepview/HorizontalStepsViewIndicator.java
index 93df248..6edda06 100644
--- a/stepview/src/main/java/com/baoyachi/stepview/StepsViewIndicator.java
+++ b/stepview/src/main/java/com/baoyachi/stepview/HorizontalStepsViewIndicator.java
@@ -19,36 +19,36 @@
/**
* 日期:16/6/22 14:15
- *
- * 描述:StepsViewIndicator指示器
+ *
+ * 描述:StepsViewIndicator 指示器
*/
-public class StepsViewIndicator extends View
+public class HorizontalStepsViewIndicator extends View
{
- //定义默认的高度
+ //定义默认的高度 definition default height
private int defaultStepIndicatorNum = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, getResources().getDisplayMetrics());
- private float mCompletedLineHeight;//完成线的高度
- private float mCircleRadius;//圆的半径
+ private float mCompletedLineHeight;//完成线的高度 definition completed line height
+ private float mCircleRadius;//圆的半径 definition circle radius
- private Drawable mCompleteIcon;//完成的默认图片
- private Drawable mAttentionIcon;//正在进行的默认图片
- private Drawable mDefaultIcon;//默认的背景图
- private float mCenterY;//该view的中间位置
- private float mLeftY;//左上方的Y位置
- private float mRightY;//右下方的位置
+ private Drawable mCompleteIcon;//完成的默认图片 definition default completed icon
+ private Drawable mAttentionIcon;//正在进行的默认图片 definition default underway icon
+ private Drawable mDefaultIcon;//默认的背景图 definition default unCompleted icon
+ private float mCenterY;//该view的Y轴中间位置 definition view centerY position
+ private float mLeftY;//左上方的Y位置 definition rectangle LeftY position
+ private float mRightY;//右下方的位置 definition rectangle RightY position
- private int mStepNum = 0;//当前有几部流程
- private float mLinePadding;
+ private int mStepNum = 0;//当前有几部流程 there are currently few step
+ private float mLinePadding;//两条连线之间的间距 definition the spacing between the two circles
- private List mComplectedXPosition;//定义完成时当前view在左边的位置
- private Paint mUnCompletedPaint;//未完成Paint
- private Paint mCompletedPaint;//完成paint
- private int mUnCompletedLineColor = ContextCompat.getColor(getContext(), R.color.uncompleted_color);//定义默认未完成线的颜色
- private int mCompletedLineColor = Color.WHITE;//定义默认完成线的颜色
+ private List mCircleCenterPointPositionList;//定义所有圆的圆心点位置的集合 definition all of circles center point list
+ private Paint mUnCompletedPaint;//未完成Paint definition mUnCompletedPaint
+ private Paint mCompletedPaint;//完成paint definition mCompletedPaint
+ private int mUnCompletedLineColor = ContextCompat.getColor(getContext(), R.color.uncompleted_color);//定义默认未完成线的颜色 definition mUnCompletedLineColor
+ private int mCompletedLineColor = Color.WHITE;//定义默认完成线的颜色 definition mCompletedLineColor
private PathEffect mEffects;
- private int mComplectingPosition;//正在进行position
+ private int mComplectingPosition;//正在进行position underway position
private Path mPath;
private OnDrawIndicatorListener mOnDrawListener;
@@ -64,7 +64,7 @@ public void setOnDrawListener(OnDrawIndicatorListener onDrawListener)
}
/**
- * get小圆的半径
+ * get圆的半径 get circle radius
*
* @return
*/
@@ -73,17 +73,18 @@ public float getCircleRadius()
return mCircleRadius;
}
- public StepsViewIndicator(Context context)
+
+ public HorizontalStepsViewIndicator(Context context)
{
this(context, null);
}
- public StepsViewIndicator(Context context, AttributeSet attrs)
+ public HorizontalStepsViewIndicator(Context context, AttributeSet attrs)
{
this(context, attrs, 0);
}
- public StepsViewIndicator(Context context, AttributeSet attrs, int defStyle)
+ public HorizontalStepsViewIndicator(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
init();
@@ -97,7 +98,7 @@ private void init()
mPath = new Path();
mEffects = new DashPathEffect(new float[]{8, 8, 8, 8}, 1);
- mComplectedXPosition = new ArrayList<>();//初始化
+ mCircleCenterPointPositionList = new ArrayList<>();//初始化
mUnCompletedPaint = new Paint();
mCompletedPaint = new Paint();
@@ -114,11 +115,11 @@ private void init()
mUnCompletedPaint.setPathEffect(mEffects);
mCompletedPaint.setStyle(Paint.Style.FILL);
- //已经完成线的宽高
+ //已经完成线的宽高 set mCompletedLineHeight
mCompletedLineHeight = 0.05f * defaultStepIndicatorNum;
- //圆的半径
+ //圆的半径 set mCircleRadius
mCircleRadius = 0.28f * defaultStepIndicatorNum;
- //线与线之间的间距
+ //线与线之间的间距 set mLinePadding
mLinePadding = 0.85f * defaultStepIndicatorNum;
mCompleteIcon = ContextCompat.getDrawable(getContext(), R.drawable.complted);//已经完成的icon
@@ -146,7 +147,7 @@ protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpe
protected void onSizeChanged(int w, int h, int oldw, int oldh)
{
super.onSizeChanged(w, h, oldw, oldh);
- //获取中间的高度
+ //获取中间的高度,目的是为了让该view绘制的线和圆在该view垂直居中 get view centerY,keep current stepview center vertical
mCenterY = 0.5f * getHeight();
//获取左上方Y的位置,获取该点的意义是为了方便画矩形左上的Y位置
mLeftY = mCenterY - (mCompletedLineHeight / 2);
@@ -157,30 +158,41 @@ protected void onSizeChanged(int w, int h, int oldw, int oldh)
{
//先计算全部最左边的padding值(getWidth()-(圆形直径+两圆之间距离)*2)
float paddingLeft = (getWidth() - mStepNum * mCircleRadius * 2 - (mStepNum - 1) * mLinePadding) / 2;
- mComplectedXPosition.add(paddingLeft + mCircleRadius + i * mCircleRadius * 2 + i * mLinePadding);
+ //add to list
+ mCircleCenterPointPositionList.add(paddingLeft + mCircleRadius + i * mCircleRadius * 2 + i * mLinePadding);
}
- mOnDrawListener.ondrawIndicator();
+ /**
+ * set listener
+ */
+ if(mOnDrawListener!=null)
+ {
+ mOnDrawListener.ondrawIndicator();
+ }
}
@Override
protected synchronized void onDraw(Canvas canvas)
{
super.onDraw(canvas);
+ if(mOnDrawListener!=null)
+ {
+ mOnDrawListener.ondrawIndicator();
+ }
mUnCompletedPaint.setColor(mUnCompletedLineColor);
mCompletedPaint.setColor(mCompletedLineColor);
- //-----------------------画线---------------------------------------------------------------
- for(int i = 0; i < mComplectedXPosition.size() - 1; i++)
+ //-----------------------画线-------draw line-----------------------------------------------
+ for(int i = 0; i < mCircleCenterPointPositionList.size() - 1; i++)
{
//前一个ComplectedXPosition
- final float preComplectedXPosition = mComplectedXPosition.get(i);
+ final float preComplectedXPosition = mCircleCenterPointPositionList.get(i);
//后一个ComplectedXPosition
- final float afterComplectedXPosition = mComplectedXPosition.get(i + 1);
+ final float afterComplectedXPosition = mCircleCenterPointPositionList.get(i + 1);
if(i < mComplectingPosition)//判断在完成之前的所有点
{
- //判断在完成之前的所有点,画完成的线,这里是矩形
+ //判断在完成之前的所有点,画完成的线,这里是矩形,很细的矩形,类似线,为了做区分,好看些
canvas.drawRect(preComplectedXPosition + mCircleRadius - 10, mLeftY, afterComplectedXPosition - mCircleRadius + 10, mRightY, mCompletedPaint);
} else
{
@@ -189,19 +201,19 @@ protected synchronized void onDraw(Canvas canvas)
canvas.drawPath(mPath, mUnCompletedPaint);
}
}
- //-----------------------画线---------------------------------------------------------------
+ //-----------------------画线-------draw line-----------------------------------------------
- //-----------------------画图标--------------------------------------------------------------
- for(int i = 0; i < mComplectedXPosition.size(); i++)
+ //-----------------------画图标-----draw icon-----------------------------------------------
+ for(int i = 0; i < mCircleCenterPointPositionList.size(); i++)
{
- final float currentComplectedXPosition = mComplectedXPosition.get(i);
+ final float currentComplectedXPosition = mCircleCenterPointPositionList.get(i);
Rect rect = new Rect((int) (currentComplectedXPosition - mCircleRadius), (int) (mCenterY - mCircleRadius), (int) (currentComplectedXPosition + mCircleRadius), (int) (mCenterY + mCircleRadius));
if(i < mComplectingPosition)
{
mCompleteIcon.setBounds(rect);
mCompleteIcon.draw(canvas);
- } else if(i == mComplectingPosition && mComplectedXPosition.size() != 1)
+ } else if(i == mComplectingPosition && mCircleCenterPointPositionList.size() != 1)
{
mCompletedPaint.setColor(Color.WHITE);
canvas.drawCircle(currentComplectedXPosition, mCenterY, mCircleRadius * 1.1f, mCompletedPaint);
@@ -213,7 +225,7 @@ protected synchronized void onDraw(Canvas canvas)
mDefaultIcon.draw(canvas);
}
}
- //-----------------------画图标--------------------------------------------------------------
+ //-----------------------画图标-----draw icon-----------------------------------------------
}
/**
@@ -221,9 +233,9 @@ protected synchronized void onDraw(Canvas canvas)
*
* @return
*/
- public List getComplectedXPosition()
+ public List getCircleCenterPointPositionList()
{
- return mComplectedXPosition;
+ return mCircleCenterPointPositionList;
}
/**
@@ -280,6 +292,7 @@ public void setDefaultIcon(Drawable defaultIcon)
/**
* 设置已完成图片
+ *
* @param completeIcon
*/
public void setCompleteIcon(Drawable completeIcon)
@@ -289,6 +302,7 @@ public void setCompleteIcon(Drawable completeIcon)
/**
* 设置正在进行中的图片
+ *
* @param attentionIcon
*/
public void setAttentionIcon(Drawable attentionIcon)
diff --git a/stepview/src/main/java/com/baoyachi/stepview/VerticalStepView.java b/stepview/src/main/java/com/baoyachi/stepview/VerticalStepView.java
new file mode 100644
index 0000000..6aa213b
--- /dev/null
+++ b/stepview/src/main/java/com/baoyachi/stepview/VerticalStepView.java
@@ -0,0 +1,219 @@
+package com.baoyachi.stepview;
+
+import android.content.Context;
+import android.graphics.Typeface;
+import android.graphics.drawable.Drawable;
+import android.support.v4.content.ContextCompat;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import java.util.List;
+
+/**
+ * 日期:16/6/24 11:48
+ *
+ * 描述:
+ */
+public class VerticalStepView extends LinearLayout implements VerticalStepViewIndicator.OnDrawIndicatorListener
+{
+ private RelativeLayout mTextContainer;
+ private VerticalStepViewIndicator mStepsViewIndicator;
+ private List mTexts;
+ private int mComplectingPosition;
+ private int mUnComplectedTextColor = ContextCompat.getColor(getContext(), R.color.uncompleted_text_color);//定义默认未完成文字的颜色;
+ private int mComplectedTextColor = ContextCompat.getColor(getContext(), android.R.color.white);//定义默认完成文字的颜色;
+
+
+ public VerticalStepView(Context context)
+ {
+ this(context, null);
+ }
+
+ public VerticalStepView(Context context, AttributeSet attrs)
+ {
+ this(context, attrs, 0);
+ }
+
+ public VerticalStepView(Context context, AttributeSet attrs, int defStyleAttr)
+ {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ private void init()
+ {
+ View rootView = LayoutInflater.from(getContext()).inflate(R.layout.widget_vertical_stepsview, this);
+ mStepsViewIndicator = (VerticalStepViewIndicator) rootView.findViewById(R.id.steps_indicator);
+ mStepsViewIndicator.setOnDrawListener(this);
+ mTextContainer = (RelativeLayout) rootView.findViewById(R.id.rl_text_container);
+ mTextContainer.removeAllViews();
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
+ {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ }
+
+ /**
+ * 设置显示的文字
+ *
+ * @param texts
+ * @return
+ */
+ public VerticalStepView setStepViewTexts(List texts)
+ {
+ mTexts = texts;
+ mStepsViewIndicator.setStepNum(mTexts.size());
+ return this;
+ }
+
+ /**
+ * 设置正在进行的position
+ *
+ * @param complectingPosition
+ * @return
+ */
+ public VerticalStepView setStepsViewIndicatorComplectingPosition(int complectingPosition)
+ {
+ mComplectingPosition = complectingPosition;
+ mStepsViewIndicator.setComplectingPosition(complectingPosition);
+ return this;
+ }
+
+ /**
+ * 设置未完成文字的颜色
+ *
+ * @param unComplectedTextColor
+ * @return
+ */
+ public VerticalStepView setStepViewUnComplectedTextColor(int unComplectedTextColor)
+ {
+ mUnComplectedTextColor = unComplectedTextColor;
+ return this;
+ }
+
+ /**
+ * 设置完成文字的颜色
+ *
+ * @param complectedTextColor
+ * @return
+ */
+ public VerticalStepView setStepViewComplectedTextColor(int complectedTextColor)
+ {
+ this.mComplectedTextColor = complectedTextColor;
+ return this;
+ }
+
+ /**
+ * 设置StepsViewIndicator未完成线的颜色
+ *
+ * @param unCompletedLineColor
+ * @return
+ */
+ public VerticalStepView setStepsViewIndicatorUnCompletedLineColor(int unCompletedLineColor)
+ {
+ mStepsViewIndicator.setUnCompletedLineColor(unCompletedLineColor);
+ return this;
+ }
+
+ /**
+ * 设置StepsViewIndicator完成线的颜色
+ *
+ * @param completedLineColor
+ * @return
+ */
+ public VerticalStepView setStepsViewIndicatorCompletedLineColor(int completedLineColor)
+ {
+ mStepsViewIndicator.setCompletedLineColor(completedLineColor);
+ return this;
+ }
+
+ /**
+ * 设置StepsViewIndicator默认图片
+ *
+ * @param defaultIcon
+ */
+ public VerticalStepView setStepsViewIndicatorDefaultIcon(Drawable defaultIcon)
+ {
+ mStepsViewIndicator.setDefaultIcon(defaultIcon);
+ return this;
+ }
+
+ /**
+ * 设置StepsViewIndicator已完成图片
+ *
+ * @param completeIcon
+ */
+ public VerticalStepView setStepsViewIndicatorCompleteIcon(Drawable completeIcon)
+ {
+ mStepsViewIndicator.setCompleteIcon(completeIcon);
+ return this;
+ }
+
+ /**
+ * 设置StepsViewIndicator正在进行中的图片
+ *
+ * @param attentionIcon
+ */
+ public VerticalStepView setStepsViewIndicatorAttentionIcon(Drawable attentionIcon)
+ {
+ mStepsViewIndicator.setAttentionIcon(attentionIcon);
+ return this;
+ }
+
+ /**
+ * is reverse draw 是否倒序画
+ *
+ * @param isReverSe default is true
+ * @return
+ */
+ public VerticalStepView reverseDraw(boolean isReverSe)
+ {
+ this.mStepsViewIndicator.reverseDraw(isReverSe);
+ return this;
+ }
+
+ /**
+ * set linePadding proportion 设置线间距的比例系数
+ * @param linePaddingProportion
+ * @return
+ */
+ public VerticalStepView setLinePaddingProportion(float linePaddingProportion)
+ {
+ this.mStepsViewIndicator.setIndicatorLinePaddingProportion(linePaddingProportion);
+ return this;
+ }
+
+ @Override
+ public void ondrawIndicator()
+ {
+ List complectedXPosition = mStepsViewIndicator.getCircleCenterPointPositionList();
+ if(mTexts != null)
+ {
+ for(int i = 0; i < mTexts.size(); i++)
+ {
+ TextView textView = new TextView(getContext());
+ textView.setText(mTexts.get(i));
+ textView.setY(complectedXPosition.get(i) - mStepsViewIndicator.getCircleRadius() / 2);
+ textView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+
+ if(i <= mComplectingPosition)
+ {
+ textView.setTypeface(null, Typeface.BOLD);
+ textView.setTextColor(mComplectedTextColor);
+ } else
+ {
+ textView.setTextColor(mUnComplectedTextColor);
+ }
+
+ mTextContainer.addView(textView);
+ }
+ }
+ }
+}
diff --git a/stepview/src/main/java/com/baoyachi/stepview/VerticalStepViewIndicator.java b/stepview/src/main/java/com/baoyachi/stepview/VerticalStepViewIndicator.java
new file mode 100644
index 0000000..bb82fb5
--- /dev/null
+++ b/stepview/src/main/java/com/baoyachi/stepview/VerticalStepViewIndicator.java
@@ -0,0 +1,367 @@
+package com.baoyachi.stepview;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.DashPathEffect;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.graphics.PathEffect;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.support.v4.content.ContextCompat;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.View;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 日期:16/6/24 11:48
+ *
+ * 描述:
+ */
+public class VerticalStepViewIndicator extends View
+{
+ //定义默认的高度 definition default height
+ private int defaultStepIndicatorNum = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, getResources().getDisplayMetrics());
+
+ private float mCompletedLineHeight;//完成线的高度 definition completed line height
+ private float mCircleRadius;//圆的半径 definition circle radius
+
+ private Drawable mCompleteIcon;//完成的默认图片 definition default completed icon
+ private Drawable mAttentionIcon;//正在进行的默认图片 definition default underway icon
+ private Drawable mDefaultIcon;//默认的背景图 definition default unCompleted icon
+ private float mCenterX;//该View的X轴的中间位置
+ private float mLeftY;
+ private float mRightY;
+
+ private int mStepNum = 0;//当前有几部流程 there are currently few step
+ private float mLinePadding;//两条连线之间的间距 definition the spacing between the two circles
+
+ private List mCircleCenterPointPositionList;//定义所有圆的圆心点位置的集合 definition all of circles center point list
+ private Paint mUnCompletedPaint;//未完成Paint definition mUnCompletedPaint
+ private Paint mCompletedPaint;//完成paint definition mCompletedPaint
+ private int mUnCompletedLineColor = ContextCompat.getColor(getContext(), R.color.uncompleted_color);//定义默认未完成线的颜色 definition mUnCompletedLineColor
+ private int mCompletedLineColor = Color.WHITE;//定义默认完成线的颜色 definition mCompletedLineColor
+ private PathEffect mEffects;
+
+ private int mComplectingPosition;//正在进行position underway position
+ private Path mPath;
+
+ private OnDrawIndicatorListener mOnDrawListener;
+ private Rect mRect;
+ private int mHeight;//这个控件的动态高度 this view dynamic height
+ private boolean mIsReverseDraw;//is reverse draw this view;
+
+
+ /**
+ * 设置监听
+ *
+ * @param onDrawListener
+ */
+ public void setOnDrawListener(OnDrawIndicatorListener onDrawListener)
+ {
+ mOnDrawListener = onDrawListener;
+ }
+
+ /**
+ * get圆的半径 get circle radius
+ *
+ * @return
+ */
+ public float getCircleRadius()
+ {
+ return mCircleRadius;
+ }
+
+
+ public VerticalStepViewIndicator(Context context)
+ {
+ this(context, null);
+ }
+
+ public VerticalStepViewIndicator(Context context, AttributeSet attrs)
+ {
+ this(context, attrs, 0);
+ }
+
+ public VerticalStepViewIndicator(Context context, AttributeSet attrs, int defStyle)
+ {
+ super(context, attrs, defStyle);
+ init();
+ }
+
+ /**
+ * init
+ */
+ private void init()
+ {
+ mPath = new Path();
+ mEffects = new DashPathEffect(new float[]{8, 8, 8, 8}, 1);
+
+ mCircleCenterPointPositionList = new ArrayList<>();//初始化
+
+ mUnCompletedPaint = new Paint();
+ mCompletedPaint = new Paint();
+ mUnCompletedPaint.setAntiAlias(true);
+ mUnCompletedPaint.setColor(mUnCompletedLineColor);
+ mUnCompletedPaint.setStyle(Paint.Style.STROKE);
+ mUnCompletedPaint.setStrokeWidth(2);
+
+ mCompletedPaint.setAntiAlias(true);
+ mCompletedPaint.setColor(mCompletedLineColor);
+ mCompletedPaint.setStyle(Paint.Style.STROKE);
+ mCompletedPaint.setStrokeWidth(2);
+
+ mUnCompletedPaint.setPathEffect(mEffects);
+ mCompletedPaint.setStyle(Paint.Style.FILL);
+
+ //已经完成线的宽高 set mCompletedLineHeight
+ mCompletedLineHeight = 0.05f * defaultStepIndicatorNum;
+ //圆的半径 set mCircleRadius
+ mCircleRadius = 0.28f * defaultStepIndicatorNum;
+ //线与线之间的间距 set mLinePadding
+ mLinePadding = 0.85f * defaultStepIndicatorNum;
+
+ mCompleteIcon = ContextCompat.getDrawable(getContext(), R.drawable.complted);//已经完成的icon
+ mAttentionIcon = ContextCompat.getDrawable(getContext(), R.drawable.attention);//正在进行的icon
+ mDefaultIcon = ContextCompat.getDrawable(getContext(), R.drawable.default_icon);//未完成的icon
+
+ mIsReverseDraw = true;//default draw
+ }
+
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
+ {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ int width = defaultStepIndicatorNum;
+ mHeight = 0;
+ if(mStepNum > 0)
+ {
+ //dynamic measure VerticalStepViewIndicator height
+ mHeight = (int) (getPaddingTop() + getPaddingBottom() + mCircleRadius * 2 * mStepNum + (mStepNum - 1) * mLinePadding);
+ }
+ if(MeasureSpec.UNSPECIFIED != MeasureSpec.getMode(widthMeasureSpec))
+ {
+ width = Math.min(width, MeasureSpec.getSize(widthMeasureSpec));
+ }
+ if(MeasureSpec.UNSPECIFIED != MeasureSpec.getMode(heightMeasureSpec))
+ {
+ mHeight = MeasureSpec.getSize(heightMeasureSpec);
+ }
+ setMeasuredDimension(width, mHeight);
+
+ }
+
+ @Override
+ protected void onSizeChanged(int w, int h, int oldw, int oldh)
+ {
+ super.onSizeChanged(w, h, oldw, oldh);
+ mCenterX = getWidth() / 2;
+ mLeftY = mCenterX - (mCompletedLineHeight / 2);
+ mRightY = mCenterX + (mCompletedLineHeight / 2);
+
+ for(int i = 0; i < mStepNum; i++)
+ {
+ //reverse draw VerticalStepViewIndicator
+ if(mIsReverseDraw)
+ {
+ mCircleCenterPointPositionList.add(mHeight - (mCircleRadius + i * mCircleRadius * 2 + i * mLinePadding));
+ } else
+ {
+ mCircleCenterPointPositionList.add(mCircleRadius + i * mCircleRadius * 2 + i * mLinePadding);
+ }
+ }
+ /**
+ * set listener
+ */
+ if(mOnDrawListener != null)
+ {
+ mOnDrawListener.ondrawIndicator();
+ }
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas)
+ {
+ super.onDraw(canvas);
+ if(mOnDrawListener != null)
+ {
+ mOnDrawListener.ondrawIndicator();
+ }
+ mUnCompletedPaint.setColor(mUnCompletedLineColor);
+ mCompletedPaint.setColor(mCompletedLineColor);
+
+ //-----------------------画线-------draw line-----------------------------------------------
+ for(int i = 0; i < mCircleCenterPointPositionList.size() - 1; i++)
+ {
+ //前一个ComplectedXPosition
+ final float preComplectedXPosition = mCircleCenterPointPositionList.get(i);
+ //后一个ComplectedXPosition
+ final float afterComplectedXPosition = mCircleCenterPointPositionList.get(i + 1);
+
+ if(i < mComplectingPosition)//判断在完成之前的所有点
+ {
+ //判断在完成之前的所有点,画完成的线,这里是矩形,很细的矩形,类似线,为了做区分,好看些
+ if(mIsReverseDraw)
+ {
+ canvas.drawRect(mLeftY, afterComplectedXPosition + mCircleRadius - 10, mRightY, preComplectedXPosition - mCircleRadius + 10, mCompletedPaint);
+ } else
+ {
+ canvas.drawRect(mLeftY, preComplectedXPosition + mCircleRadius - 10, mRightY, afterComplectedXPosition - mCircleRadius + 10, mCompletedPaint);
+ }
+ } else
+ {
+ if(mIsReverseDraw)
+ {
+ mPath.moveTo(mCenterX, afterComplectedXPosition + mCircleRadius);
+ mPath.lineTo(mCenterX, preComplectedXPosition - mCircleRadius);
+ canvas.drawPath(mPath, mUnCompletedPaint);
+ } else
+ {
+ mPath.moveTo(mCenterX, preComplectedXPosition + mCircleRadius);
+ mPath.lineTo(mCenterX, afterComplectedXPosition - mCircleRadius);
+ canvas.drawPath(mPath, mUnCompletedPaint);
+ }
+
+ }
+ }
+ //-----------------------画线-------draw line-----------------------------------------------
+
+ //-----------------------画图标-----draw icon-----------------------------------------------
+ for(int i = 0; i < mCircleCenterPointPositionList.size(); i++)
+ {
+ final float currentComplectedXPosition = mCircleCenterPointPositionList.get(i);
+ mRect = new Rect((int) (mCenterX - mCircleRadius), (int) (currentComplectedXPosition - mCircleRadius), (int) (mCenterX + mCircleRadius), (int) (currentComplectedXPosition + mCircleRadius));
+ if(i < mComplectingPosition)
+ {
+ mCompleteIcon.setBounds(mRect);
+ mCompleteIcon.draw(canvas);
+ } else if(i == mComplectingPosition && mCircleCenterPointPositionList.size() != 1)
+ {
+ mCompletedPaint.setColor(Color.WHITE);
+ canvas.drawCircle(mCenterX, currentComplectedXPosition, mCircleRadius * 1.1f, mCompletedPaint);
+ mAttentionIcon.setBounds(mRect);
+ mAttentionIcon.draw(canvas);
+ } else
+ {
+ mDefaultIcon.setBounds(mRect);
+ mDefaultIcon.draw(canvas);
+ }
+ }
+ //-----------------------画图标-----draw icon-----------------------------------------------
+ }
+
+
+ /**
+ * 得到所有圆点所在的位置
+ *
+ * @return
+ */
+ public List getCircleCenterPointPositionList()
+ {
+ return mCircleCenterPointPositionList;
+ }
+
+ /**
+ * 设置流程步数
+ *
+ * @param stepNum 流程步数
+ */
+ public void setStepNum(int stepNum)
+ {
+ this.mStepNum = stepNum;
+ invalidate();
+ }
+
+ /**
+ *
+ * 设置线间距的比例系数 set linePadding proportion
+ * @param linePaddingProportion
+ */
+ public void setIndicatorLinePaddingProportion(float linePaddingProportion)
+ {
+ this.mLinePadding = linePaddingProportion * defaultStepIndicatorNum;
+ }
+
+ /**
+ * 设置正在进行position
+ *
+ * @param complectingPosition
+ */
+ public void setComplectingPosition(int complectingPosition)
+ {
+ this.mComplectingPosition = complectingPosition;
+ invalidate();
+ }
+
+ /**
+ * 设置未完成线的颜色
+ *
+ * @param unCompletedLineColor
+ */
+ public void setUnCompletedLineColor(int unCompletedLineColor)
+ {
+ this.mUnCompletedLineColor = unCompletedLineColor;
+ }
+
+ /**
+ * 设置已完成线的颜色
+ *
+ * @param completedLineColor
+ */
+ public void setCompletedLineColor(int completedLineColor)
+ {
+ this.mCompletedLineColor = completedLineColor;
+ }
+
+ /**
+ * is reverse draw 是否倒序画
+ */
+ public void reverseDraw(boolean isReverseDraw)
+ {
+ this.mIsReverseDraw = isReverseDraw;
+ invalidate();
+ }
+
+ /**
+ * 设置默认图片
+ *
+ * @param defaultIcon
+ */
+ public void setDefaultIcon(Drawable defaultIcon)
+ {
+ this.mDefaultIcon = defaultIcon;
+ }
+
+ /**
+ * 设置已完成图片
+ *
+ * @param completeIcon
+ */
+ public void setCompleteIcon(Drawable completeIcon)
+ {
+ this.mCompleteIcon = completeIcon;
+ }
+
+ /**
+ * 设置正在进行中的图片
+ *
+ * @param attentionIcon
+ */
+ public void setAttentionIcon(Drawable attentionIcon)
+ {
+ this.mAttentionIcon = attentionIcon;
+ }
+
+ /**
+ * 设置对view监听
+ */
+ public interface OnDrawIndicatorListener
+ {
+ void ondrawIndicator();
+ }
+}
diff --git a/stepview/src/main/res/layout/widget_stepsview.xml b/stepview/src/main/res/layout/widget_horizontal_stepsview.xml
similarity index 91%
rename from stepview/src/main/res/layout/widget_stepsview.xml
rename to stepview/src/main/res/layout/widget_horizontal_stepsview.xml
index a3b8d5e..8f7a3a3 100755
--- a/stepview/src/main/res/layout/widget_stepsview.xml
+++ b/stepview/src/main/res/layout/widget_horizontal_stepsview.xml
@@ -4,7 +4,7 @@
android:layout_height="match_parent"
android:orientation="vertical">
-
+
+
+
+
+
+
\ No newline at end of file