Skip to content

Commit 1b9a02b

Browse files
committed
Fixed title change color
1 parent b0ab868 commit 1b9a02b

File tree

6 files changed

+132
-13
lines changed

6 files changed

+132
-13
lines changed

app/src/main/java/devmike/jade/com/pagestepindicator/MainActivity.kt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,42 @@ package devmike.jade.com.pagestepindicator
22

33
import android.support.v7.app.AppCompatActivity
44
import android.os.Bundle
5+
import android.support.v4.app.Fragment
6+
import android.support.v4.app.FragmentManager
7+
import android.support.v4.app.FragmentStatePagerAdapter
8+
import android.support.v4.view.PagerAdapter
9+
import android.view.View
10+
import devmike.jade.com.PageStepIndicator
11+
import kotlinx.android.synthetic.main.activity_main.*
512

613
class MainActivity : AppCompatActivity() {
714

15+
lateinit var pageStepper : PageStepIndicator
16+
817
override fun onCreate(savedInstanceState: Bundle?) {
918
super.onCreate(savedInstanceState)
19+
1020
setContentView(R.layout.activity_main)
21+
22+
pageStepper = findViewById(R.id.page_stepper)
23+
24+
val adapter = MyPagerAdapter(supportFragmentManager)
25+
vp.adapter = adapter
26+
27+
pageStepper.setupWithViewPager(vp)
28+
}
29+
30+
class MyPagerAdapter(fm: FragmentManager) : FragmentStatePagerAdapter(fm){
31+
32+
override fun getItem(p0: Int): Fragment {
33+
return TestFragment.newInstance(p0)
34+
}
35+
36+
override fun getCount(): Int {
37+
38+
return 4
39+
}
40+
1141
}
42+
1243
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package devmike.jade.com.pagestepindicator
2+
3+
import android.os.Bundle
4+
import android.support.v4.app.Fragment
5+
import android.view.LayoutInflater
6+
import android.view.View
7+
import android.view.ViewGroup
8+
import kotlinx.android.synthetic.main.test_frag_layout.view.*
9+
10+
class TestFragment : Fragment(){
11+
12+
13+
companion object {
14+
val EXTRA_VALUE :String = "TestFragment._EXTRA_VALUE"
15+
16+
fun newInstance(value: Int): TestFragment{
17+
18+
val frag = TestFragment()
19+
val bundle = Bundle()
20+
bundle.putInt(EXTRA_VALUE, value+1)
21+
frag.arguments = bundle
22+
return frag
23+
}
24+
}
25+
26+
@Override
27+
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
28+
val view : View= inflater.inflate(R.layout.test_frag_layout, container, false);
29+
view.numberTv.text = " ${arguments!!.getInt(EXTRA_VALUE)}"
30+
return view
31+
}
32+
33+
}
Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<android.support.constraint.ConstraintLayout
2+
<LinearLayout
3+
android:orientation="vertical"
34
xmlns:android="http://schemas.android.com/apk/res/android"
45
xmlns:tools="http://schemas.android.com/tools"
56
xmlns:app="http://schemas.android.com/apk/res-auto"
67
android:layout_width="match_parent"
7-
android:background="@color/colorPrimary"
8+
android:padding="15dp"
89
android:layout_height="match_parent"
910
tools:context=".MainActivity">
1011

1112
<devmike.jade.com.PageStepIndicator
1213
app:pgTitles="@array/titles"
1314
app:pgStrokeAlpha="255"
14-
app:pgActiveTitleColor="@android:color/white"
15-
app:pgInActiveTitleColor="@color/colorAccent"
15+
android:id="@+id/page_stepper"
1616
android:layout_width="match_parent"
1717
android:layout_height="wrap_content"/>
1818

19-
</android.support.constraint.ConstraintLayout>
19+
<android.support.v4.view.ViewPager
20+
android:id="@+id/vp"
21+
android:layout_width="match_parent"
22+
android:layout_height="match_parent"/>
23+
24+
</LinearLayout>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout
3+
android:orientation="vertical"
4+
xmlns:android="http://schemas.android.com/apk/res/android"
5+
android:layout_width="match_parent"
6+
android:layout_height="match_parent" xmlns:tools="http://schemas.android.com/tools">
7+
8+
<TextView android:layout_width="wrap_content"
9+
android:layout_gravity="center"
10+
android:textSize="100sp"
11+
tools:text="11"
12+
android:id="@+id/numberTv"
13+
android:layout_marginTop="50dp"
14+
android:textAlignment="center"
15+
android:textColor="@color/colorAccent"
16+
android:layout_height="wrap_content"/>
17+
</LinearLayout>

pagestepindicator/src/main/java/devmike/jade/com/PageStepIndicator.java

Lines changed: 40 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import android.content.res.TypedArray;
99
import android.graphics.*;
1010
import android.os.Build;
11+
import android.os.Handler;
1112
import android.os.Parcel;
1213
import android.os.Parcelable;
1314
import android.support.annotation.ArrayRes;
@@ -17,11 +18,17 @@
1718
import android.support.v4.content.ContextCompat;
1819
import android.support.v4.view.PagerAdapter;
1920
import android.support.v4.view.ViewPager;
21+
import android.support.v7.widget.ViewUtils;
22+
import android.view.animation.AlphaAnimation;
23+
import android.view.animation.Animation;
24+
import android.view.animation.LinearInterpolator;
25+
import android.view.animation.RotateAnimation;
2026
import android.widget.LinearLayout;
2127
import android.util.AttributeSet;
2228
import android.util.DisplayMetrics;
2329
import android.view.MotionEvent;
2430
import android.view.View;
31+
import android.widget.TextView;
2532
import com.devmike.pagestepindicator.R;
2633

2734
import java.util.ArrayList;
@@ -35,6 +42,7 @@ public class PageStepIndicator extends View {
3542
private static final int DEFAULT_BACKGROUND_COLOR = R.color.background_default;
3643
private static final int DEFAULT_STEP_COLOR = R.color.step_default;
3744
private static final int DEFAULT_CURRENT_STEP_COLOR = R.color.current_step_default;
45+
private static final int DEFAULT_INACTIVE_TITLE= R.color.lighter_gray;
3846
private static final int DEFAULT_TEXT_COLOR = R.color.text_default;
3947
private static final int DEFAULT_SECONDARY_TEXT_COLOR = R.color.secondary_text_default;
4048
public static final float DEFAULT_LINE_HEIGHT =6.0f;
@@ -154,7 +162,8 @@ private void init(Context context, AttributeSet attributeSet) {
154162
Color.colorToHSV(currentColor, hsvCurrent);
155163
Color.colorToHSV(backgroundColor, hsvBG);
156164
Color.colorToHSV(stepColor, hsvProgress);
157-
animateView(paint, currentColor, currentColor);
165+
//animateView(tText, currentColor, currentColor);
166+
initAnimation();
158167
invalidate();
159168
}
160169

@@ -176,8 +185,8 @@ private void initAttributes(Context context, AttributeSet attributeSet) {
176185
backgroundColor = attr.getColor(R.styleable.PageStepIndicator_pgBackgroundColor, ContextCompat.getColor(context, DEFAULT_BACKGROUND_COLOR));
177186
textColor = attr.getColor(R.styleable.PageStepIndicator_pgTextColor, ContextCompat.getColor(context, DEFAULT_TEXT_COLOR));
178187
secondaryTextColor = attr.getColor(R.styleable.PageStepIndicator_pgSecondaryTextColor, ContextCompat.getColor(context, DEFAULT_SECONDARY_TEXT_COLOR));
179-
pageInActiveTitleColor = attr.getColor(R.styleable.PageStepIndicator_pgInActiveTitleColor, ContextCompat.getColor(context, DEFAULT_SECONDARY_TEXT_COLOR));
180-
pageActiveTitleColor = attr.getColor(R.styleable.PageStepIndicator_pgActiveTitleColor, ContextCompat.getColor(context, DEFAULT_CURRENT_STEP_COLOR));
188+
pageInActiveTitleColor = attr.getColor(R.styleable.PageStepIndicator_pgInActiveTitleColor, ContextCompat.getColor(context, DEFAULT_INACTIVE_TITLE));
189+
pageActiveTitleColor = attr.getColor(R.styleable.PageStepIndicator_pgActiveTitleColor, ContextCompat.getColor(context, DEFAULT_TEXT_COLOR));
181190
pageTitleId = attr.getResourceId(R.styleable.PageStepIndicator_pgTitles, View.NO_ID);
182191
pageStrokeAlpha = attr.getInt(R.styleable.PageStepIndicator_pgStrokeAlpha, DEFAULT_STROKE_ALPHA);
183192

@@ -361,7 +370,7 @@ protected void onDraw(Canvas canvas) {
361370
pText.setColor(secondaryTextColor);
362371

363372
tText.setColor(pageInActiveTitleColor);
364-
animateView(tText, pageActiveTitleColor, pageInActiveTitleColor);
373+
animateView(tText, pageActiveTitleColor, pageInActiveTitleColor, canvas);
365374

366375
} else if (i == currentStepPosition) {
367376
//draw current step
@@ -385,7 +394,7 @@ protected void onDraw(Canvas canvas) {
385394
pText.setColor(textColor);
386395

387396
tText.setColor(pageActiveTitleColor);
388-
animateView(tText, pageInActiveTitleColor, pageActiveTitleColor);
397+
animateView(tText, pageInActiveTitleColor, pageActiveTitleColor, canvas);
389398

390399
} else {
391400
//draw next step
@@ -394,7 +403,7 @@ protected void onDraw(Canvas canvas) {
394403
pText.setColor(secondaryTextColor);
395404

396405
tText.setColor(pageInActiveTitleColor);
397-
animateView(tText, pageActiveTitleColor, pageInActiveTitleColor);
406+
animateView(tText, pageActiveTitleColor, pageInActiveTitleColor, canvas);
398407

399408
//draw transition
400409
if (i == currentStepPosition + 1 && offsetPixel > 0 && pagerScrollState == 1) {
@@ -419,8 +428,30 @@ protected void onDraw(Canvas canvas) {
419428

420429
}
421430

422-
private void animateView(Paint target, @ColorInt int defaultColor, @ColorInt int toColor){
431+
private void initAnimation() {
432+
AlphaAnimation animation = new AlphaAnimation(0, 1);
433+
animation.setDuration(7500L);
434+
animation.setInterpolator(new LinearInterpolator());
435+
//startAnimation(animation);
436+
}
437+
438+
private void animateView(Paint target, @ColorInt int defaultColor, @ColorInt int toColor, Canvas canvas){
439+
//new ArgbEvaluator(),
423440
//TODO: Do animation works here
441+
ObjectAnimator animator = ObjectAnimator.ofObject(target,
442+
"color", new ArgbEvaluator(), toColor, defaultColor);
443+
animator.setDuration(2000);
444+
445+
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
446+
@Override
447+
public void onAnimationUpdate(ValueAnimator animation) {
448+
float animFrac =animation.getAnimatedFraction();
449+
tText.setColor(Color.BLACK);
450+
invalidate();
451+
// canvas.translate(0, 50);
452+
}
453+
});
454+
animator.start();
424455

425456
}
426457

@@ -431,6 +462,8 @@ private void drawTextCentred(Canvas canvas, Paint paint, String text, float cx,
431462

432463
private void drawTextBottom(Canvas canvas, Paint paint, String text, float cx, float cy) {
433464
paint.getTextBounds(text, 0, text.length(), textBounds);
465+
Path path = new Path();
466+
434467
canvas.drawText(text, cx, cy - textBounds.exactCenterY(), paint);
435468
}
436469

pagestepindicator/src/main/res/values/colors.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<color name="text_default">#000000</color>
1717
<color name="secondary_text_default">#ffffff</color>
1818
<color name="status_bar">#838282</color>
19-
<color name="lighter_gray">#ddd</color>
19+
<color name="lighter_gray">#ababab</color>
2020
<color name="page_title_color">#797979</color>
2121

2222
<color name="ed_border">#d4606060</color>

0 commit comments

Comments
 (0)