在我的应用中创建了一个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>
答案 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
将永远找不到正确的对象。