我正试图像FB的应用程序一样制作启动画面,徽标向上移动并显示登录内容。我不知道为什么,但这不能正常工作:
public class Login extends Activity {
ImageView logo;
int width, height;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
logo = (ImageView) findViewById(R.id.logo);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (logo != null) {
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
width = size.x / 2;
height = size.y / 2;
TranslateAnimation animation = new TranslateAnimation(width, width,
height, height / 2);
animation.setDuration(2500);
animation.setFillAfter(false);
animation.setAnimationListener(new MyAnimationListener());
logo.startAnimation(animation);
// /////
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.login, menu);
return true;
}
private class MyAnimationListener implements AnimationListener {
@Override
public void onAnimationEnd(Animation animation) {
logo.clearAnimation();
LayoutParams lp = new LayoutParams(logo.getWidth(),
logo.getHeight());
lp.setMargins((int) width, (int) height / 2, 0, 0);
logo.setLayoutParams(lp);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
}
}
}
我正试图从屏幕中心开始垂直移动ImageView:
width = size.x / 2;
height = size.y / 2;
而不是那样,ImageView从右下角垂直移动。
1.为什么划分屏幕尺寸/ 2不会将ImageView置于其中心?
2.动画结束后,我将新的LayoutParams设置为ImageView:lp.setMargins((int) width, (int) height / 2, 0, 0);
。不应该把它放在动画结束的地方吗?而不是那样,它被推向左边。
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:gravity="center"
tools:context=".Login" >
<ImageView
android:id="@+id/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/logo" />
提前致谢:)