java - 使AnimationDrawable向前移动

标签 java android drawable android-animation

所有 - 我有一个简单的应用程序,我希望一个人走过屏幕。现在,动画发生在一个地方,就像一本便签翻页书一样。换句话说,框架就像旋转的轮子一样在一个地方发生变化。我的问题是如何让动画前进(以我想要的速度)以及更改帧?这是我关于此问题的代码:

public void start(View v) {  
    ImageView img = (ImageView)findViewById(R.id.imageView); 
    img.setBackgroundResource(R.drawable.animation); 
    AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();                
    frameAnimation.start();
}

感谢您的时间和努力!

最佳答案

你可以使用你自己的图像(男人的图像)做这样的事情:

主类:

package com.android.animation;

import android.app.Activity;
import android.os.Bundle;

public class Main extends Activity 
{

    Animation myView;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        myView = new Animation(this);
        setContentView(myView);
    }
}

动画类:

package com.android.animation;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.view.View;

public class Animation extends View
{
Bitmap gBall;
float changingY;

public Animation(Context content)
{
    super(content);

    gBall = BitmapFactory.decodeResource(getResources(), R.drawable.ball);
    changingY = 0;
}

@Override
protected void onDraw(Canvas canvas)
{
    super.onDraw(canvas);
    canvas.drawColor(Color.BLACK);
    canvas.drawBitmap(gBall, (canvas.getWidth()/2), changingY, null);
    if(changingY < canvas.getHeight())
        changingY += 10;
    else
        changingY = 0;

    invalidate();
}
}

XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />

</LinearLayout>

事实上,如果您愿意,您可以继续复制粘贴我的代码并查看它是如何工作的(确保将图像放入drawable-hdpi文件夹中)...您应该能够将其用作模板为您的项目。希望对您有帮助!

P.S 当然,您可以将 ChangingY 变量更改为 ChangingX (例如;当然,您还必须更改其他一些内容,例如 drawBitmap () 方法.. 不过并不难)让球沿水平线移动...看看它对你来说如何。

关于java - 使AnimationDrawable向前移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11887462/

相关文章:

java - 当第 3 方 Java 库作为单个 jar 的集合提供时,将它集成到 Maven 项目中的最佳方法是什么?

android - SipDemo 示例代码给出 NullPointerException

android - 由 png 和 overlay 组成的 XML drawable

android - 有没有办法找到drawable的资源ID

java - 有没有简单易用的CGLIB API,不用代理就可以生成方法拦截器?

java - 使用 String.format 添加空格和额外数字

java - Glassfish 超时

android - 我的Android模拟器无法正常工作

java - 是否可以从非所有者的 Android 设备上读取记录?

android - 矢量绘图中的微光动画