http://i.imgur.com/QSuWCtl.png
以上是相对布局,我希望能够仅使用箭头标记使其上升。
通常我会使用2D引擎来做这样的事情(来自制作游戏)。我不习惯观看,但它们似乎有点限制(就像setY在某些设备上不起作用......或者在屏幕上放置视图调整它们的大小)
无论如何,如果将这一半放在屏幕上然后让它进入视野?它很容易在iPhone上运行,在Android上看起来很麻烦(有些教程有很多代码,我只想要简单的东西......)
答案 0 :(得分:0)
试试这个我的动画:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="100%p"
android:toYDelta="50%p" />
现在给出你的底部布局样式:
android:layout_alignParentBottom="true"
现在使用以下方法提供您的布局动画:
private LinearLayout llShareApp;
llShareApp = (LinearLayout) findViewById(R.id.llShareApp);
llShareApp.setAnimation(AnimationUtils.loadAnimation(this,
R.anim.bottom_top));
答案 1 :(得分:0)
通过XML制作动画并不容易,因为Android拥有如此多的屏幕尺寸。首先,您需要计算相对布局部分的高度以及整个屏幕高度,然后您可以获得要将部件提升到屏幕并执行动画的实际高度。
以下是示例代码:
布局XML:
<LinearLayout
android:id="@+id/layout_order_types"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_below="@+id/layout_mask"
android:visibility="invisible" >
<ImageView
android:id="@+id/image_all_order"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/all_order" />
..............
..............
</LinearLayout>
活动代码:
// Whole screen height
int heightPixels = getApplicationContext().getResources().getDisplayMetrics().heightPixels;
View layoutOrderTypes = findViewById(R.id.layout_order_types);
layoutOrderTypes.setVisibility(View.VISIBLE);
// slide in from bottom animation
Animation inFromBottom = new TranslateAnimation(
Animation.ABSOLUTE, 0.0f,
Animation.ABSOLUTE, 0.0f,
Animation.ABSOLUTE, heightPixels,
Animation.ABSOLUTE, (heightPixels - layoutOrderTypes.getHeight()
- DisplayUtil.getStatusBarHeight(this)));
inFromBottom.setDuration(300);
// start the animation
layoutOrderTypes.startAnimation(inFromBottom);
DisplayUtil.java
public static int getStatusBarHeight(Context context) {
int result = 0;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = context.getResources().getDimensionPixelSize(resourceId);
}
return result;
}