如何在android中启动帧动画?

时间:2011-11-18 05:29:55

标签: android android-animation

我想开始5个不同的frame animations:一个用于上限,一个用于围巾 一个用于角色,一个用于表情,一个用于围巾边框。我希望它看起来像男人用围巾帽子跑。动画开始很好, 但是所有的动画都没有在同一时间播放。 请帮我这样做。

我在代码中通过addFrame方法设置了png图像。

我在这里发布示例代码

   capanimation.setVisible(true,true);
    capanimation.start();
    Log.i("fani"," cap:  "+System.currentTimeMillis() );
    scarfmainanimaiton.setVisible(true,true);
    scarfmainanimaiton.start();
    Log.i("fani"," sca:  "+System.currentTimeMillis() );

    faceexpressionanimation.setVisible(true,true);
    faceexpressionanimation.start();
    Log.i("fani"," fac:  "+System.currentTimeMillis() );

    charecteranimation.setVisible(true,true);
    charecteranimation.start();
    Log.i("fani"," cha:  "+System.currentTimeMillis() );

2 个答案:

答案 0 :(得分:1)

我认为你可以使用逐帧动画来做到这一点非常容易。我将提供该支票的链接http://developer.android.com/guide/topics/graphics/drawable-animation.html 您可以将图像放在资源文件夹中,并根据需要进行动画处理。希望这会对你有所帮助。

答案 1 :(得分:0)

在may app我选择用户选择不同选项中的帽子,围巾          根据用户选择,我需要使用用户选择的帽子和围巾来设置该cahrecter的动画

     //Iam posting the some sample code here
     public  int maledance[]={R.drawable.char01,R.drawable.char02,R.drawable.char03,R.drawable.char04,R.drawable.char05,R.drawable.char06
                ,R.drawable.char07,R.drawable.char08,R.drawable.char09,R.drawable.char10,R.drawable.char11,R.drawable.char12,R.drawable.char13,R.drawable.char14,R.drawable.char15};

    public int maledancescarf1[]={R.drawable.scarve101,R.drawable.scarve102,R.drawable.scarve103,R.drawable.scarve104,R.drawable.scarve105,R.drawable.scarve106,
            R.drawable.scarve107,R.drawable.scarve108,R.drawable.scarve109,R.drawable.scarve110,R.drawable.scarve111,R.drawable.scarve112,R.drawable.scarve113,R.drawable.scarve114,R.drawable.scarve115};           

等......

       charecteranimation=new AnimationDrawable();
        capanimation=new AnimationDrawable();
        capboarderanimation=new AnimationDrawable();
        scarfmainanimaiton=new AnimationDrawable();
        scarfboarderanimation=new AnimationDrawable();
        faceexpressionanimation=new AnimationDrawable();
        for(int i=0;i<maledance.length;i++)
        {
            Log.i("fani","string lenth is  "+maledance.length+" delay is "+delay);
        charecteranimation.addFrame(getResources().getDrawable(maledance[i]),t);
        capanimation.addFrame(getResources().getDrawable(maledancecap[i]),t);
        scarfmainanimaiton.addFrame(getResources().getDrawable(maledancescarf[i]),t);
        faceexpressionanimation.addFrame(getResources().getDrawable(malefaceexpression[i]),t);
        }
        capanimation.setOneShot(false);
        charecteranimation.setOneShot(false);
        scarfmainanimaiton.setOneShot(false);
        faceexpressionanimation.setOneShot(false);


        //in onwindowfocuschanged listner i am starting the animations