Остановка программы при попытке повернуть изображение

Я новичок в программировании Android и пытаюсь повернуть изображение.

Это мой код:

public class MainActivity extends Activity {

    ImageView x; 
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); 
        x = (ImageView)findViewById(R.drawable.clippedneedle); 
        RotateAnimation newAnim = new RotateAnimation(0,360); 
        newAnim.setFillAfter(true); 
        newAnim.setDuration(10); 
        x.startAnimation(newAnim); 

    }
}

Мой файл макета является стандартным и содержит только код из ImageView.

По сути, моя программа перестает работать, как только она открывается. LogCat говорит, что поток выходит с необработанным исключением.

Любая помощь приветствуется. Спасибо!

1 ответ

Вы передаете идентификатор Drawable Вот:

x = (ImageView)findViewById(R.drawable.clippedneedle); 

Вам нужно передать идентификатор ImageView, Если у вас есть ImageView в R.layout.activity_main, сделайте следующее:

x = (ImageView)findViewById(R.id.myImageViewId);
x.setImageDrawable(getResources().getDrawable(R.drawable.clippedneedle

Вот ваш код с несколькими изменениями:

x = (ImageView)findViewById(R.drawable.clippedneedle); 
RotateAnimation newAnim = new RotateAnimation(0.0f, 360.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); 
newAnim.setFillAfter(true); 
newAnim.setDuration(2000);    // 2 seconds || 2000 milliseconds 
x.startAnimation(newAnim);

Здесь вы можете сделать гораздо больше. Взгляните на страницу ресурсов Android разработчика по анимации.

Другие вопросы по тегам