我的应用程序中有一个片段,上面有一个自定义按钮,它的宽度为50dp,左边距设置为-25dp,因此有一半是屏幕外的。我想为它设置动画,以便在某个特定事件中它向右移动50dp并保持在那里。
我试过这个:
TranslateAnimation slide_anim=new TranslateAnimation(0,50,0,0);
slide_anim.setDuration(250);
mMovingButton.startAnimation(slide_anim);
但它将它移动50像素并且它不会停留在那里,我该如何解决?
答案 0 :(得分:1)
使用以下代码 -
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;
}