这是一个按钮点击时闪烁textview的代码..
start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
recordShow.setVisibility(View.VISIBLE);
Animation anim = new AlphaAnimation(0.0f, 1.0f);
anim.setDuration(1000); //You can manage the time of the blink with this parameter
anim.setStartOffset(20);
anim.setRepeatMode(Animation.REVERSE);
anim.setRepeatCount(Animation.INFINITE);
recordShow.startAnimation(anim);
}
我必须停止点击另一个按钮点击......怎么做.. ??
答案 0 :(得分:3)
另一种方法可能是:
1。在您的活动中全局(在任何方法之外)声明动画和 TextView 对象。
private Animation mAnim;
private TextView mRecordShow;
2. 设置一个设置动画属性并启动它的类。让这个类期望 TextView 小部件作为其参数。
protected void setBlinkingText(TextView textView) {
mAnim = new AlphaAnimation(0.0f, 1.0f);
mAnim.setDuration(1000); // Time of the blink
mAnim.setStartOffset(20);
mAnim.setRepeatMode(Animation.REVERSE);
mAnim.setRepeatCount(Animation.INFINITE);
textView.startAnimation(mAnim);
}
3. 设置另一个在给定文本视图中停止动画的类。让这个类期望 TextView 小部件作为其参数。
protected void removeBlinkingText(TextView textView) {
textView.clearAnimation();
}
4. 现在,您可以在任何需要的地方使用您的课程,并为其传递相应的文字视图。
例如
(a) 在您要启动动画的onClick()
方法中,将所有动画代码替换为:
setBlinkingText(mRecordShow);
(b) 无论您想在该文字视图上停止动画,只需致电:
removeBlinkingText(mRecordShow);
答案 1 :(得分:0)
以下假设您要通过单击相同按钮来停止闪烁。如果您想使用其他按钮停止点击,可以将下面onClick()
中的if-else拆分为单独的点击处理程序。
首先,将anim
移到onClick()
之外,并使其成为包含类的字段。您需要将anim
存储在某处,以便稍后取消。
Animation anim = new AlphaAnimation(0.0f, 1.0f)
anim.setDuration(1000); //You can manage the time of the blink with this parameter
anim.setStartOffset(20);
anim.setRepeatMode(Animation.REVERSE);
anim.setRepeatCount(Animation.INFINITE);
其次,在包含的类中创建一个布尔字段,以跟踪TextView
当前是否正在闪烁:
boolean mBlinking = false;
然后:
@Override
public void onClick(View v)
{
recordShow.setVisibility(View.VISIBLE);
if(!mBlinking){
recordShow.startAnimation(anim);
mBlinking = true;
} else{
recordShow.clearAnimation(anim); // cancel blink animation
recordShow.setAlpha(1.0f); // restore original alpha
mBlinking = false;
}
}