2013-07-18 1 views
1

저는 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); 

    } 
} 

내 레이아웃 파일이 표준이며 단지 이미지 뷰에서 코드를 포함

내 코드입니다.

기본적으로 내 프로그램은 열리는 즉시 실행을 중지합니다. logcat은 스레드가 캐치되지 않은 예외로 종료 중임을 나타냅니다.

도움을 주시면 감사하겠습니다. 감사!

+0

전체 logcat 오류 스택 트레이스를 게시 할 수 있습니까? – Danuofr

+0

내 대답을 편집하고 맨 아래에 몇 가지 코드를 추가했습니다. 나는 그것을 시험했으며 작동한다. – Vikram

+0

도움에 감사드립니다! – user2593562

답변

1

당신은 여기 Drawable의 ID를 전달하는이 :

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

당신은 ImageView의 ID를 전달해야합니다. 당신이 R.layout.activity_mainImageView이있는 경우, 다음을 수행하십시오

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 developer's resource page on Animation을보십시오.

+0

또는 x.setImageResource (R.drawable. clippedneedle); –

+0

setImageDrawable (Drawable)에 대한 정보가 setImageResource (int)보다 더 효율적인지 잘 모르겠습니다. 이 경우에는 중요하지 않습니다. – Vikram

+0

지금은 프로그램이 실행되지만 회전하지 않습니다. 왜 이런 일이 일어날 지 알고 있습니까? – user2593562