尝试连续旋转图像时Android应用程序崩溃

时间:2014-03-26 00:00:57

标签: java android xml imageview

在我的应用中创建了一个ImageView并希望连续旋转它,但当我尝试在手机上运行该应用时,它会立即崩溃。这是我的代码:

Java活动文件:

public class FrontPage extends ActionBarActivity {

ImageView iv;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_front_page);
    initialize();

    RotateAnimation rotateAnimation1 = new RotateAnimation(0, 360,
            Animation.RELATIVE_TO_SELF, 0.5f,
            Animation.RELATIVE_TO_SELF, 0.5f);
    rotateAnimation1.setInterpolator(new LinearInterpolator());
    rotateAnimation1.setDuration(2000);
    rotateAnimation1.setRepeatCount(Animation.INFINITE);
    iv.startAnimation(rotateAnimation1);
}

private void initialize() {

    iv = (ImageView) findViewById(R.id.motorolaLogo);

}

XML文件:

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >

        <ImageView
            android:layout_gravity="center_horizontal"
            android:layout_height="150dp"
            android:layout_width="150dp"
            android:layout_marginTop="30dp"
            android:id="@+id/motorolaLogo"
            android:src="@drawable/motologo"
            />

    </RelativeLayout>

1 个答案:

答案 0 :(得分:0)

您永远不会初始化iv。它是Null Pointer Exception

空指针异常是尝试使用null对象。在您的情况下,您声明ImageView iv但从不为其分配值。之后你试图使用它的一种方法,但由于它没有正确初始化,它相当于写null.startAnimation(rotateAnimation1);

为了避免这些类型的错误,您只需确保在尝试使用其方法之前分配了正确的值...

讨论后修改了

* * 你正在给错误的xml充气。而不是

 setContentView(R.layout.activity_front_page);

你需要

 setContentView(R.layout.fragment_front_page);

否则,您的Activity将永远找不到正确的对象。