在android 5.0中,我正在尝试使用圆形显示动画
问题
当我单击按钮以开始显示动画时,在单击动画时不开始
第二次单击即可正常运行
我的密码
public class MainActivity extends ActionBarActivity {
Animator a;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final View cardType = findViewById(R.id.cardtype);
cardType.setVisibility(View.GONE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
a = ViewAnimationUtils.createCircularReveal(cardType,
cardType.getWidth(),
cardType.getHeight(),
0,
cardType.getHeight() * 2)
.setDuration(2500);
a.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
super.onAnimationStart(animation);
cardType.setVisibility(View.VISIBLE);
}
});
a.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
cardType.setVisibility(View.GONE);
}
});
findViewById(R.id.icon_first_activity).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
a.start();
}
});
}
}}
我没有尝试过您的代码,但是我认为您有一个小的订购问题。我认为您只需要在开始动画之前设置cardType
可见即可。
编辑添加:
...,您应该将按钮设置为View.INVISIBLE,而不是View.GONE。
此处:此代码有效。
再次编辑以添加:
是的。您的问题是您最初设置了GONE视图。这意味着它的大小为0。然后,您使用cardType.getHeight
和cardType.getWidth
作为显示坐标。它们是0。首先,您将要设置视图不可见,然后使用width / 2和height / 2作为显示的中心。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句