Android中动画的介绍(三)——属性动画(4)

本篇博客依然是对于属性动画的练习,需求如下:

使用图片完成要求:距离屏幕底部一定的位置开始向屏幕底部垂直移动,达到底部后弹回到原高度一半的位置,每次移动耗时2s,且每次移动先加速又减速,如此重复3次。

效果图如下:


分析如何实现上述的效果呢?

分析步骤如下:其实就是模拟弹力球的过程

 1.分析就是关于一个控件在y轴上移动的过程
 2.300 0 150 0 75 0
 3.一共弹起3次,每次2s,一共是6s
 4.属性动画可以写1个,也可以写3个
分析发现,只需要写一个属性动画即可,在这个属性动画当中针对于y轴的位置进行设置改变。因为是3次弹起落下,
所以传入3组数据,也就是6个数据,然后每次要求2秒,共6秒
开始编写代码:
1.绘制布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/btn_ap"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="移动阿飘"
        android:onClick="onClick"
        android:layout_centerHorizontal="true"/>
    <ImageView
        android:id="@+id/img_ap"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@mipmap/apiao"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="300dp"/>
</RelativeLayout>

2.开始编写逻辑代码。
public class PropertyTest02 extends AppCompatActivity {
    private ImageView apImg;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_property_test02);
        apImg = (ImageView) findViewById(R.id.img_ap);
    }
//  开启动画
    private void startAnimator() {
        ObjectAnimator apAnimator = ObjectAnimator.ofFloat(apImg, "translationY", 0, 900, 300, 900, 700, 900);
        apAnimator.setDuration(6000);
        apAnimator.setInterpolator(new AccelerateDecelerateInterpolator());  //设置插值器
        apAnimator.start();
    }
    public void onClick(View view) {
        startAnimator();
    }
}

然后就可以实现要求当中所示的动画效果了!不信,你可以试试~~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值