Leandro Borg..

14

编辑

使用非常小的代码可以解决这个问题.

首先,将您的XML动画代码更改为:

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

android:fillAfter="false">

android:fromYDelta="0%p"

android:toYDelta="100%p"

android:duration="1000"

android:repeatCount="infinite"

android:repeatMode="restart"

/>

你的布局应该是这样的:

android:id="@+id/image"

android:layout_width="200dp"

android:layout_height="200dp"

android:background="@mipmap/ic_launcher">

android:id="@+id/bar"

android:layout_width="200dp"

android:layout_height="6dp"

android:visibility="gone"

android:background="@android:color/black"

android:src="@mipmap/ic_launcher"/>

在您的活动中,代码可以是这样的:

LinearLayout imageView = (LinearLayout) findViewById(R.id.image);

final View bar = findViewById(R.id.bar);

final Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.anim);

animation.setAnimationListener(new Animation.AnimationListener() {

@Override

public void onAnimationStart(Animation animation) {}

@Override

public void onAnimationEnd(Animation animation) {

bar.setVisibility(View.GONE);

}

@Override

public void onAnimationRepeat(Animation animation) {}

});

imageView.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View view, MotionEvent motionEvent) {

bar.setVisibility(View.VISIBLE);

bar.startAnimation(animation);

return false;

}

});

这样你就会有这样的结果:

14f89375e9e6259dc2b861a51d405e66.gif

我使用View而不是ImageView来制作扫描条,但您可以根据需要更改代码.

我希望它有所帮助!

编辑2:

如果您希望仅在按下图像时才发生动画,请将代码更改为:

imageView.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View view, MotionEvent motionEvent) {

if(motionEvent.getAction() == MotionEvent.ACTION_DOWN){

bar.setVisibility(View.VISIBLE);

bar.startAnimation(animation);

} else if(motionEvent.getAction() == MotionEvent.ACTION_UP){

bar.setVisibility(View.GONE);

animation.cancel();

}

return false;

}

});

它是您在按下图像时触发动画(MotionEvent.ACTION_DOWN),它将在图像释放时停止动画(MotionEvent.ACTION_UP)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐