यह उदाहरण Android में कैरेक्टर बाय कैरेक्टर टेक्स्ट डिस्प्ले एनिमेशन बनाने के बारे में है।
टाइपराइटर इफेक्ट एनिमेशन का उदाहरण
चरण 1 - नया प्रोजेक्ट बनाएं
Android Studio में एक नया प्रोजेक्ट बनाएं: File → New Project पर जाएं और आवश्यक विवरण भरें।
चरण 2 - MainActivity.java में कोड जोड़ें
src/MainActivity.java में निम्नलिखित कोड जोड़ें:
package com.example.andy.myapplication;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Typewriter writer = new Typewriter(this);
setContentView(writer);
writer.setCharacterDelay(150);
writer.animateText("Sample String...Sample String...Sample String...");
}
}
उपरोक्त कोड में, हमने कस्टम क्लास ली है और इसे MainActivity में व्यू के रूप में जोड़ा है। इसलिए Typewriter.java नामक फाइल बनाएं और निम्नलिखित कोड जोड़ें:
चरण 3 - Typewriter.java कस्टम क्लास बनाएं
package com.example.andy.myapplication;
import android.content.Context;
import android.os.Handler;
import android.util.AttributeSet;
import android.widget.TextView;
public class Typewriter extends TextView {
private CharSequence mText;
private int mIndex;
private long mDelay = 5000;
private final Handler mHandler = new Handler();
private final Runnable characterAdder = new Runnable() {
@Override
public void run() {
setText(mText.subSequence(0, mIndex++));
if (mIndex <= mText.length()) {
mHandler.postDelayed(characterAdder, mDelay);
}
}
};
public Typewriter(Context context) {
super(context);
}
public Typewriter(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void animateText(CharSequence text) {
mText = text;
mIndex = 0;
setText("");
mHandler.removeCallbacks(characterAdder);
mHandler.postDelayed(characterAdder, mDelay);
}
public void setCharacterDelay(long millis) {
mDelay = millis;
}
}
ऐप चलाएं
अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें और ऐप चलाएं। परिणाम में, यह 5000ms देरी के साथ एक कैरेक्टर के बाद दूसरा कैरेक्टर डिस्प्ले करेगा।
नोट: उदाहरण में 5000ms (5 सेकंड) की देरी दिखाई गई है, जो बहुत धीमी है। व्यावहारिक उपयोग के लिए 50-150ms की देरी बेहतर होती है।