返回

DIY 你的 万圣节聊天界面动画

Android

万圣节来临之际,想必你已经开始筹划如何装饰你的家了。如果你想让你的万圣节派对更加特别,不妨考虑用动画来装饰你的聊天界面。在本文中,我们将向你展示如何使用 ObjectAnimation 在十分钟内制作一个令人毛骨悚然的万圣节聊天界面动画。

首先,我们需要创建一个新的 Android 项目。打开 Android Studio,点击“新建项目”,然后选择“空项目”。在“项目名称”字段中输入“HalloweenChatAnimation”,然后点击“下一步”。在“目标 SDK”字段中选择“Android 12.0”,然后点击“完成”。

接下来,我们需要添加一个新的布局文件。右键单击“res”文件夹,然后选择“新建”>“布局资源文件”。在“文件名称”字段中输入“activity_main”,然后点击“确定”。

在 activity_main.xml 文件中,添加以下代码:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.ConstraintLayout 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">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/toolbar" />

</androidx.constraintlayout.ConstraintLayout>

接下来,我们需要创建一个新的活动文件。右键单击“java”文件夹,然后选择“新建”>“活动”。在“活动名称”字段中输入“MainActivity”,然后点击“完成”。

在 MainActivity.java 文件中,添加以下代码:

package com.example.halloweenchatanimation;

import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private RecyclerView recyclerView;
    private List<String> messages;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        recyclerView = findViewById(R.id.recyclerView);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        messages = new ArrayList<>();
        messages.add("Happy Halloween!");
        messages.add("BOO!");
        messages.add("Trick or treat?");

        MessageAdapter adapter = new MessageAdapter(messages);
        recyclerView.setAdapter(adapter);

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_animate:
                animate();
                return true;
        }

        return super.onOptionsItemSelected(item);
    }

    private void animate() {
        for (int i = 0; i < messages.size(); i++) {
            View view = recyclerView.findViewHolderForAdapterPosition(i).itemView;
            ObjectAnimator animator = ObjectAnimator.ofFloat(view, "translationY", 100f, 0f);
            animator.setDuration(1000);
            animator.start();
        }
    }
}

接下来,我们需要创建一个新的菜单文件。右键单击“res”文件夹,然后选择“新建”>“菜单资源文件”。在“文件名称”字段中输入“main_menu”,然后点击“确定”。

在 main_menu.xml 文件中,添加以下代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/action_animate"
        android:title="Animate" />

</menu>

现在,我们可以运行我们的应用程序了。点击“运行”按钮,然后选择“Android 设备”或“Android 模拟器”。您的应用程序将在设备或模拟器上启动。

点击菜单按钮,然后选择“Animate”。您将看到聊天界面中的消息向上移动,然后停留在适当的位置。

这就是本教程的全部内容。您现在已经学会了如何使用 ObjectAnimation 在十分钟内创建一个令人毛骨悚然的万圣节聊天界面动画。