An Android TextView with a shimmering effect
Shimmer for Android
This library is DEPRECATED, as I don't have time to mainatin it anymore. But feel free to go through the code and copy that into your project, it still does its job.
How to use
Gradle dependency:
compile 'com.romainpiel.shimmer:library:1.4.0@aar'
Add a ShimmerTextView
to your layout:
<com.romainpiel.shimmer.ShimmerTextView
android:id="@+id/shimmer_tv"
android:text="@string/shimmer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#444"
android:textSize="50sp"/>
To start the animation:
shimmer = new Shimmer();
shimmer.start(myShimmerTextView);
You may want to keep track of the shimmer instance after the animation is started if you want to stop it.
To stop it:
shimmer.cancel();
Customization
Customizing the view
You can change the color of the reflection using the custom attribute reflectionColor
:
<com.romainpiel.shimmer.ShimmerTextView
android:id="@+id/shimmer_tv"
android:text="@string/shimmer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#444"
android:textSize="50sp"
app:reflectionColor="#f00"/>
Customizing the animation
The animation can be tweaked like a usual ObjectAnimator
:
// DON'T COPY THIS CODE TO YOUR PROJECT! It is just an example
shimmer.setRepeatCount(0)
.setDuration(500)
.setStartDelay(300)
.setDirection(Shimmer.ANIMATION_DIRECTION_RTL)
.setAnimatorListener(new Animator.AnimatorListener(){});
Custom Shimmer view
Shimmer also includes a ShimmerButton
. It works exactly the same way as a ShimmerTextView
.
Have a look at how it's implemented and you can apply the same effect on your custom view if you need it.