android-studio - 一个动画可绘制对象的两个不同按钮
问题描述
我的代码有问题我在 android studio 上开发了一个游戏,我遇到了以下问题。
我的应用程序上有两个按钮,一个 Punch 按钮和一个 Kick 按钮,还有一个 Imageview,我可以在其中为我的图像设置动画。
当我点击拳击按钮时,我创建了两个图像的可绘制动画当我点击踢按钮时,我也创建了两个图像的可绘制动画。
问题是当我用两个可绘制动画执行这段代码时,应用程序崩溃了!!
public class MainActivity extends AppCompatActivity {
private Button btnPunch;
private Button btnKick;
private ImageView imageView1 ;
private ImageView imageView2 ;
private AnimationDrawable[] animationDrawable = new
AnimationDrawable[2];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnPunch = (Button) findViewById(R.id.btnPunch);
imageView1 = (ImageView)
findViewById(R.id.imageView1);
imageView1.setBackgroundResource(
R.drawable.animationpunch);
animationDrawable[0] = (AnimationDrawable)
imageView1.getBackground();
imageView2 = (ImageView)
findViewById(R.id.imageView2);
imageView2.setBackground
Resource(R.drawable.animatio
nkick);
animationDrawable[1] = (AnimationDrawable)
imageView2.getBackground();
btnPunch.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
animationDrawable[1].stop();
animationDrawable[0].setOneShot(true);
animationDrawable[0].start();
}
});
btnKick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
animationDrawable[0].stop()
animationDrawable[1].setOneShot(true);
animationDrawable[1].start();
}
});
}
@Override
public void onWindowFocusChanged(boolean hasFocus)
{
super.onWindowFocusChanged(hasFocus);
//animationDrawable.start();
}
}
</Code>
另一方面,当我删除类似以下代码的动画时,我还为这两个动画使用了两个不同的图像视图,它运行良好,但突然间我仅限于使用打孔按钮,我希望它可以与两个按钮一起使用
public class MainActivity extends AppCompatActivity {
private Button btnPunch;
private ImageView imageView1 ;
private AnimationDrawable[] animationDrawable = new
AnimationDrawable[2];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnPunch = (Button) findViewById(R.id.btnPunch);
imageView1 = (ImageView)
findViewById(R.id.imageView1);
imageView1.setBackground
Resource(R.drawable.animatio
npunch);
animationDrawable[0] = (AnimationDrawable)
imageView1.getBackground();
btnPunch.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
animationDrawable[1].stop();
animationDrawable[0].setOneShot(true);
animationDrawable[0].start();
}
}}
}
@Override
public void onWindowFocusChanged(boolean hasFocus)
{
super.onWindowFocusChanged(hasFocus);
//animationDrawable.start();
}
}
单击打孔按钮,它会为我的动画制作动画 未单击踢按钮,它会为我的动画制作动画 踢帮助?
解决方案
推荐阅读
- c++ - 计算对数组中对元素的差异编译时间
- google-bigquery - BigQuery:联合/连接两个有很多列的表,有些重叠
- python - 让 Locust 在任务运行之间等待
- julia - 在 Julia 中更改轴的比例
- python-3.x - 如何关闭由函数创建的新窗口
- git - 带有 pathspec 的 Git 存储列表
- python - Gooey (Python):如何在 return_to_config 后清除文本字段
- django - 如何在模板上打印出 django 中会话的所有内容
- windows - 定义“注入”
- python - Jupyter Notebook 和 Keras-TQDM:AttributeError:“TQDMNotebookCallback”对象没有属性“on_train_batch_begin”