欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android绘制平移动画的示例代码

程序员文章站 2022-03-02 15:16:13
目录1、具体操作步骤2、具体实施创建imageview创建objectanimator对象3、具体实例activity_main.xmlmainactivity.java1、具体操作步骤创建image...

1、具体操作步骤

创建imageview对象

创建objectanimator对象

通过offloat方法实现平移

2、具体实施

创建imageview

<imageview
        android:id="@+id/car"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerinparent="true"
        android:src="@mipmap/car"/>

创建objectanimator对象

1.第一位参数是需要移动的图片

2.第二位参数是设置在什么轴移动,例子translationx,就是在x轴移动

objectanimator objectanimator = objectanimator.offloat(car, "translationx", 0f, -200);
            objectanimator.setduration(2000);
            objectanimator.start();

3、具体实例

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".mainactivity">

    <imageview
        android:id="@+id/car"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerinparent="true"
        android:src="@mipmap/car"/>
    <linearlayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerhorizontal="true"
        android:orientation="horizontal"
        android:layout_below="@id/car"
        android:layout_margintop="100dp">
        <button
            android:id="@+id/left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="forward"
            android:textallcaps="false"/>
        <button
            android:id="@+id/reset"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="reset"
            android:textallcaps="false"
            android:layout_marginleft="20dp"/>
        <button
            android:id="@+id/right"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="backword"
            android:textallcaps="false"
            android:layout_marginleft="20dp"/>
    </linearlayout>
</relativelayout>

mainactivity.java

package com.example.a4_10_float;

import androidx.appcompat.app.appcompatactivity;

import android.animation.objectanimator;
import android.os.bundle;
import android.view.view;
import android.widget.button;
import android.widget.imageview;

public class mainactivity extends appcompatactivity {

    private imageview car;
    private button left;
    private button reset;
    private button right;

    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_main);
        car = findviewbyid(r.id.car);
        left = findviewbyid(r.id.left);
        reset = findviewbyid(r.id.reset);
        right = findviewbyid(r.id.right);
    }

    @override
    protected void onstart() {
        super.onstart();
        left.setonclicklistener(new view.onclicklistener() {
            @override
            public void onclick(view v) {
                floaat(1);
            }
        });
        reset.setonclicklistener(new view.onclicklistener() {
            @override
            public void onclick(view v) {
                floaat(0);
            }
        });
        right.setonclicklistener(new view.onclicklistener() {
            @override
            public void onclick(view v) {
                floaat(2);
            }
        });
    }
	//封装好一个方法,开控制向左向右移动和回到初始位置
    private void floaat(int a) {
        if (a==1) {
            objectanimator objectanimator = objectanimator.offloat(car, "translationx", 0f, -200);
            objectanimator.setduration(2000);
            objectanimator.start();
        }else if (a==0){
            objectanimator objectanimator = objectanimator.offloat(car, "translationx", 0f, 0);
            objectanimator.setduration(2000);
            objectanimator.start();
        }else if (a==2){
            objectanimator objectanimator = objectanimator.offloat(car, "translationx", 0f, 200);
            objectanimator.setduration(2000);
            objectanimator.start();
        }
    }
}

一个最简单的平移动画就实现了

到此这篇关于android绘制平移动画的示例代码的文章就介绍到这了,更多相关android平移动画内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!