飞行的不知名小鸟

本文介绍了一个使用Android平台实现的小鸟飞行动画案例。通过定义逐帧动画和平移补间动画,实现了小鸟在屏幕上向右上方飞行的效果。具体步骤包括创建动画资源文件、设置布局文件以及编写监听事件。

本实例实现时,主要用到了逐帧动画和平移补间动画。
实现过程
(1)在新建项目的res目录中,在drawable的目录创建一个fly.xml资源文件,在该文件中定义一个小鸟飞行动作的图画,该动画由两帧组成,也就是由两个预先定义好的图片组成,具体代码如下:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable = "@drawable/bard1" android:duration = "60"/>
    <item android:drawable = "@drawable/bard2" android:duration = "60"/>

</animation-list>

(2)在res中,创建一个名为anim的目录,并创建名称为move.xml的XML资源文件,在该文件中定义一个实现小鸟飞行的补间动画,该动画为在水平方向上向右向上平移300像素,持续时间为3秒钟。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
    android:fromXDelta="20"
    android:toXDelta="300"
    android:fromYDelta="0"
    android:toYDelta="0"
    android:repeatCount = "infinite"
    android:duration = "3000">
</translate>
</set>

(3)修改新建项目的res/layout目录下的布局文件main.xml,将默认添加的TextView组件删除,然后在默认添加的线性布局管理器中添加一个ImageView组件,并设置该组件的背景逐帧动画资源fly:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:id="@+id/ll"
    android:orientation="vertical"
    tools:context="com.example.shenfan.bard.MainActivity">

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/fly"/>

</LinearLayout>

(4)打开默认创建的MainActivity,在onCreat()方法中,首先获取布局文件中的线性布局管理器及ImageView组件,然后获取动画资源,最后,为线性布局添加单击监听事件,该监听事件中,播放动画,从而实现小鸟飞行的效果:

package com.example.shenfan.bard;

import android.graphics.drawable.Animatable;
import android.graphics.drawable.AnimationDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.view.animation.Animation;
public class MainActivity extends AppCompatActivity {

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

        LinearLayout ll = (LinearLayout)findViewById(R.id.ll);//获取布局文件中添加的线性布局管理器
        final ImageView iv = (ImageView)findViewById(R.id.imageView1);
        final Animation move = AnimationUtils.loadAnimation(this,R.anim.move);
        final AnimationDrawable anim = (AnimationDrawable)iv.getDrawable();//获取AnimationDrawable对象

        //为线性布局管理器添加单击事件监听器
        ll.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                anim.start();//开始播放动画
                iv.setAnimation(move);
            }
        });
    }
}

运行结果如下图:
在这里插入图片描述

可下载:
https://download.youkuaiyun.com/download/ancientear/10674541

运行知名CMD命令后,可能会出现同情况,以下是一些常见情况及处理办法: ### 命令未找到错误 当出现如“'ping' 是内部或外部命令,也是可运行的程序或批处理文件”这类提示时,可能是命令对应的程序未正确安装或者其路径未添加到系统的环境变量中。例如在安装和配置MongoDB时,出现“‘mongo’ 是内部或外部命令,也是可运行的程序”的错误提示,可能是因为MongoDB未正确安装、环境变量未设置、安装路径或文件名更改后环境变量未更新等原因[^1][^2]。 解决方法: - 检查程序是否正确安装,若未正确安装,需重新安装程序。 - 若程序已安装,将程序的可执行文件所在目录添加到系统的PATH环境变量中。具体操作是在系统属性中找到“高级系统设置”,点击“环境变量”,在系统变量中找到“Path”,编辑并添加相应的路径。 ### 命令执行报错 如果命令执行后出现其他错误信息,首先需要仔细阅读错误提示,错误提示中通常会包含一些关键信息,如文件存在、权限足等。 解决方法: - 若提示文件存在,检查命令中涉及的文件路径是否正确。 - 若提示权限足,尝试以管理员身份运行CMD。右键点击CMD图标,选择“以管理员身份运行”。 ### 命令无响应 当执行命令后CMD长时无响应,可能是命令本身执行时较长,也可能是程序出现了死锁等问题。 解决方法: - 等待一段时,看命令是否会正常执行完毕。 - 若长时无响应,可以尝试按下 `Ctrl + C` 组合键,终止当前命令的执行。 ### 示例代码(添加环境变量的Python代码示例) ```python import os # 获取当前的PATH环境变量 path = os.environ.get('PATH') # 要添加的路径 new_path = 'C:\\Program Files\\YourProgram' # 检查新路径是否已经存在于PATH中 if new_path not in path: # 将新路径添加到PATH中 new_path_str = f'{path};{new_path}' # 设置新的PATH环境变量 os.environ['PATH'] = new_path_str print('新路径已添加到PATH环境变量中') else: print('新路径已经存在于PATH环境变量中') ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Αиcíеиτеǎг

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值