gpt4 book ai didi

android - 我们可以将 Scroll TextView 创建为 whatsapp lastseen 的状态吗

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:03:34 35 4
gpt4 key购买 nike

我想问一下我们如何创建 Scroll TextView action bar 作为 Whatsapp lastseen 的状态。请打开 whatsapp 并查看状态:)

之前: enter image description here

然后它会开始滚动,我们可以看到这样的文本:“seen yesterday at .....”

滚动后: enter image description here

最佳答案

灵感来自 this回答,试图使这个解决方案。希望这对您有用。

第 1 步: 创建打字机类。

public class Typewriter extends TextView {

private CharSequence mTextToHide, mTextToDisplay;
private int mIndex;
private long mInitialDelay = 2000; //Default 500ms delay
private long mDelay = 500; //Default 500ms delay
private Handler mHandler = new Handler();
private Runnable characterAdder = new Runnable() {
@Override
public void run() {
// setText(mText.subSequence(0, mIndex++));
// if (mIndex <= mText.length()) {
// mHandler.postDelayed(characterAdder, mDelay);
// }

if (mTextToHide != null
&& mTextToDisplay != null && mIndex < mTextToHide.length()) {
Log.d("Typewriter", "mIndex = " + mIndex);
setText(mTextToDisplay.subSequence(mIndex++, mTextToDisplay.length()));
mHandler.postDelayed(characterAdder, mDelay);
}
}
};

public Typewriter(Context context) {
super(context);
}

public Typewriter(Context context, AttributeSet attrs) {
super(context, attrs);
}

public void animateText(CharSequence textToHide, String textToDisplay) {
mTextToHide = textToHide;
mTextToDisplay = textToDisplay;
mIndex = 0;

// setText("");
setText(textToDisplay);
mHandler.removeCallbacks(characterAdder);
mHandler.postDelayed(characterAdder, mInitialDelay);
}

public void setCharacterDelay(long millis) {
mDelay = millis;
}

public void setInitialDelay(long millis) {
mInitialDelay = millis;
}
}

第 2 步: 在 xml 中扩展它以代替 TextView。将 com.abc.xyz 替换为相应的包名称。

         <com.abc.xyz.Typewriter
android:id="@+id/txtAppTitle"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="@dimen/font_size_toolbar_title" />

第 3 步: 从您的 Activity 或 fragment 类中设置值。根据您的要求设置参数。

    public static String LAST_SEEN_TEXT = "last seen ";
public static String TIME_TEXT = "yesterday at 15:43";

private Typewriter txtAppTitle;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...

txtAppTitle = (Typewriter) findViewById(R.id.txtAppTitle);
// Start after 2000ms
txtAppTitle.setInitialDelay(2000);
// Remove a character every 150ms
txtAppTitle.setCharacterDelay(250);
txtAppTitle.animateText(LAST_SEEN_TEXT, LAST_SEEN_TEXT + TIME_TEXT);

...
}

关于android - 我们可以将 Scroll TextView 创建为 whatsapp lastseen 的状态吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34737234/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com