首页 > 解决方案 > 尝试在空对象引用上调用虚拟方法 'android.view.ViewPropertyAnimator android.widget.ImageView.animate()'

问题描述

我正在尝试制作一个简单的动画,该图像最初没有出现,但在它从屏幕左侧旋转 180 度后出现了一定的秒数。所以我在 onCreate 方法中做了一个脚本:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ImageView Bart = (ImageView) findViewById(R.id.bart);
        Bart.animate().translationXBy(-3000);
        Bart.animate().translationXBy(4000).rotation(180).setDuration(2000);


    }

但由于某种原因,我收到一条错误消息,说我正在尝试在空对象引用上调用虚拟方法。可能是什么问题?谢谢

标签: javaandroidandroid-animation

解决方案


你没有setContentView()设置onCreate

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main)// add this with your layout Id
    ImageView bartImageView = (ImageView) findViewById(R.id.bart);
    bartImageView.animate().translationXBy(-3000);
    bartImageView.animate().translationXBy(4000).rotation(180).setDuration(2000);


}

也很少有建议采用以小写字母开头的 camelCase 变量。向变量添加一些标识符,表明它是什么,比如bartImageView 等等bartIV


推荐阅读