这是我的xml:
<RelativeLayout 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" >
<SurfaceView
android:layout_width="match_parent"
android:layout_height="10dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="0dp" />
</RelativeLayout>
我想让这个观点随着时间而增长。
这是动画的代码
SurfaceView surfaceViewTimer = (SurfaceView) findViewById(R.id.surface_view_timer);
Animation surfaceGrowingAnimation = new TranslateAnimation
(0, 0, Animation.ZORDER_TOP, 300);
surfaceGrowingAnimation.setDuration(5000);
surfaceViewTimer.startAnimation(surfaceGrowingAnimation);
我想让这个动画从屏幕的底部到顶部。当前它从顶部到底部。
答案 0 :(得分:2)
您可以使用ScaleAnimation
。
例如,修改布局以使曲面占据整个屏幕:
<RelativeLayout 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" >
<SurfaceView
android:id="@+id/surface"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_marginBottom="0dp"
android:background="@color/red"
/>
然后在Y轴上将其从0缩放到1:
SurfaceView surface = (SurfaceView) findViewById(R.id.surface);
ScaleAnimation animation = new ScaleAnimation(1.0f, 1.0f, 0.0f, 1.0f);
animation.setDuration(5000);
surface.startAnimation(animation);
答案 1 :(得分:1)
您可以使用TranslateAnimation
这样做:
final SurfaceView surface = (SurfaceView) findViewById(R.id.surface);
surface.post(new Runnable() {
@Override
public void run() {
TranslateAnimation translation = new TranslateAnimation(0f, 0f, surface.getHeight(), 0f);
translation.setDuration(2000);
surface.startAnimation(translation);
}
});
答案 2 :(得分:1)
你可以通过组合缩放和翻译动画来实现。翻译动画将有助于改变视图的位置,而动画缩放将有助于改变大小。在您的代码中使用Accelerate_Decelerate插值器。插补器将提供所需的效果。您可以尝试使用不同类型的可用插值器来实现此效果。