This is an Android project allowing to auto change text in specific period of time with your chosen animation.
- First add repository in your
build.gradlefile at project level:
allprojects { repositories { .... maven { url 'https://jitpack.io' } } }Or with newest Gradle version (+7.2.0) do like this in settings.gradle file:
pluginManagement { repositories { .... } } dependencyResolutionManagement { .... repositories { .... maven { url 'https://jitpack.io' } } } ....- And then add dependency to your project in the
build.gradlefile at app level:
implementation 'com.github.masoudsaraf:androidautotextswitcher:1.0.2'You can set textArray from XML or java code. In XML easiest way is add your text in strings resource and create a text array like this:
<resources> .... <string name="first_text">Show awesome first text</string> <string name="second_text">Show awesome second text</string> <string-array name="textArray"> <item>@string/first_text</item> <item>@string/second_text</item> </string-array> </resources>And then use created textArray as follow:
<com.masoud.autotextswitcher.AutoTextSwitcher android:id="@+id/textSwitcher" android:layout_width="match_parent" android:layout_height="wrap_content" android:inAnimation="@anim/text_in_animation" android:outAnimation="@anim/text_out_animation" app:textArray="@array/textArray" app:changeAnimationTime="3000" app:autoStart="true"/>You can use following properties:
android:inAnimation Set animation for show next text.
android:outAnimation Set animation for hide current text.
app:textArray Set array of string.
app:changeAnimationTime Set time in milliseconds.
app:autoStart Indicates auto start changing text or not
In your Activity class access to AutoTextSwitcher element with findViewById and then set factory to create a text view with your preferred properties:
public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { ... AutoTextSwitcher textSwitcher = findViewById(R.id.textSwitcher); textSwitcher.setFactory(() -> { AppCompatTextView textView = new AppCompatTextView(MainActivity.this); // set custom text appearance textView.setTextAppearance(MainActivity.this, R.style.InfoTextAppearanceStyle); textView.setPadding(10, 10, 10, 10); textView.setShadowLayer(12, 0, -5.5f, Color.parseColor("#65FFFFFF")); return textView; }); } }Call startTextAnimation() for manually start changing texts with animation.
Call stopTextAnimation() for stop animation and changing texts.
Call isTextAnimationIsRunning() to determine is animation and changing text is activate or not.
Call setTextArray(List<CharSequence>) to set new text array from code. even you can have Spannable text in array.
Call appendToTextArray(CharSequence newText) to append a text to exists array. Just like above you can use Spannable text.