我将图像作为背景加载,当触摸屏幕时,我想用frameanimation为屏幕的那部分设置动画。我的frameanimation包含9个不同的png文件,这些文件只是我想要动画的屏幕部分。当我使用整个背景作为动画的帧时,我可以使它正常工作,但是当我使用setbounds()来告诉frameanimation在哪里绘制时,我最终得到了扩展的frameanimation以填满整个屏幕,这也擦除了我的背景。如何让frameanimation保持原始大小并同时找到它?如果不清楚,我可以稍后发布代码,我现在不在comp中
public boolean onTouchEvent (MotionEvent event)
{
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
this.setBackgroundResource (R.drawable.nova);
Object bg = this.getBackground
touchAni.setBounds (152, 156, 152+140, 156+140);
touchAni = (AnimationDrawable) bg;
if (!touchAni.isRunning())
touchAni.start ();
else
{
touchAni.stop();
touchAni.start();
}
}
}
答案 0 :(得分:0)
我解决类似问题的方法是我在我想要设置动画的组件顶部的布局xml中添加了另一个图像组件。通常,图像组件为android:visibility="gone"
但是当我想运行帧动画时,我将其设置为可见并启动动画。
通过这种方式,您可以将动画组件放置在布局中的任何位置。
答案 1 :(得分:0)
好吧,经过多次努力,我终于在这里找到了BounceActivity代码:http://rsequence.com/android_blog/node/107。对于这么简单的任务来说似乎很复杂,但却能得到我想要的东西。
值得注意的是,如果其他人发现它有用,Handler()代码需要有一个开关,因此当屏幕上没有任何事情发生时,它不会将cpu周期旋转到BounceView.draw()。