2015-04-27 51 views
2

我在我的应用程序中有一个自定义按钮的片段,它的宽度为50dp,左边距设置为-25dp,所以它的一半是在屏幕外。我想为它制作动画,以便在某个事件中向右移动50dp并停留在那里。在android中滑动按钮?

我已经试过这样:

TranslateAnimation slide_anim=new TranslateAnimation(0,50,0,0); 
slide_anim.setDuration(250); 
mMovingButton.startAnimation(slide_anim); 

,但它移动了50个像素,并没有呆在那里,我该如何解决呢?

+1

slide_anim.setFillAfter(真);将此标记添加到您的代码中。 –

+0

这似乎确实将它移动到那里,但hitbox保持在同一位置 – tofiffe

+0

这是因为您使用的是旧动画系统,您应该使用属性动画。 http://developer.android.com/guide/topics/graphics/prop-animation.html – ElDuderino

回答

1

使用以下代码为IT-

btnToSlide.animate().translationX(dpToPx(50,mContext)).setDuration(200) 
     .setStartDelay(0).alpha(200); 

要以dp传递值,使用dpToPx方法 -

public static int dpToPx(int dp, Context context) { 


DisplayMetrics displayMetrics = context.getResources() 
       .getDisplayMetrics(); 
     int px = Math.round(dp 
       * (displayMetrics.xdpi/DisplayMetrics.DENSITY_DEFAULT)); 
     return px; 
    } 
+0

谢谢,像一个魅力工程 – tofiffe