2014-01-16 3 views
0

애니메이션을 만들고 싶습니다. 왜이 오류가 발생합니까?애니메이션 및 스레드 사용

01-16 12 : 09 : 33.388 : E/AndroidRuntime (895) FATAL EXCEPTION : 나사산 10

01-16 12 : 09 : 33.388 : E/AndroidRuntime (895)를

java.lang.NullPointerException이 01-16 12 : 09 : 33.388 : E/AndroidRuntime (895)에서 com.example.pages.Comments.initialImageViewSms (Comments.java:38) 01-16 12시 9분 : 33.388 : E/AndroidRuntime (895) : com.example.pages.Comments.access $ 0 (Comments.java:36) 01-16 12 : 09 : 33.388 : E/AndroidRuntime (895) : com.example.pages.Comments $ 1.run (Comments.java:24) 01-16 12 : 09 : 33.388 : E/AndroidRuntime (895) : java.lang.Thread.run (Thread.java:1020) 01-16 12 : 09 : 45.587 : E/AndroidRuntime (906) : 치명적인 예외 : 스레드 -10 01-16 12 : 09 : 45.587 : E/AndroidRuntime (906) : java.lang.NullPointerException 01-16 12 : 09 : 45.587 : E/AndroidRuntime (906)에서 com.example.pages.Comments.initialImageViewSms (Comments.java:38) 01-16 12 : 09 : 45.587 : E/AndroidRuntime (906)에서 com.example.pages.Comments.access $ 0 (Comments.java:36) 01-16 12 : 09 : 45.587 : E/AndroidRuntime (906) : com.example.pages.Comments $ 1.run (Comments.java : 24) 01-16 12 : 09 : 45.587 : E/AndroidRuntime (906) : a (E)/AndroidRuntime (990) : 치명적 예외 : 스레드 -10 01-16 12 : 15 : 11.178 : E/AndroidRuntime (990) AndroidRuntime (990) : 01-16 java.lang.NullPointerException이 12 : 15 : 11.178 : E/AndroidRuntime (990)에서 com.example.pages.Comments.initialImageViewSms (Comments.java:37) 01-16 12 : 15 : 11.178 : E/AndroidRuntime (990) : com.example.pages.Comments.access $ 0 (Comments.java:35) 01-16 12 : 15 : 11.178 : E/AndroidRuntime (990) : at com.example.pages.Comments $ 1.run (Comments.java:23) 01-16 12 : 15 : 11.178 : E/AndroidRuntime (990) : java.lang.Thread.run (Thread.java:1020)

,451,515,

BaseFragment :

package com.example.pages; 

import android.support.v4.app.Fragment; 

public class BaseFragment extends Fragment { 

} 

댓글 :

package com.example.pages; 

import android.graphics.drawable.AnimationDrawable; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
import android.widget.Toast; 

public class Comments extends BaseFragment { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    new Thread(new Runnable() { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      initialImageViewSms(); 
     } 
    }).start(); 

} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { 
    View view=inflater.inflate(R.layout.comments,container,false); 
    return view; 
} 

private void initialImageViewSms(){ 

    ImageView imageview_sendsms = (ImageView)getView().findViewById(R.id.imagebutton_send_sms); 
    imageview_sendsms.setBackgroundResource(R.drawable.send_sms_anim); 
    AnimationDrawable animdrawable = (AnimationDrawable)imageview_sendsms.getBackground(); 
    animdrawable.start(); 
} 
} 

send_sms_anim.xml :

<?xml version="1.0" encoding="utf-8"?> 
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
android:oneshot="false" 
> 

<item 
android:drawable="@drawable/send_sms_one" 
android:duration="100"/> 
<item 
android:drawable="@drawable/send_sms_two" 
android:duration="100"/> 

</animation-list> 
+0

[http : //www.androidhive.정보/2013/06/android-working-with-xml-animations /] 문제로 인해 문제가 해결 될 수도 있습니다 –

+1

왜 스레드에서 애니메이션을 시작합니까? – njzk2

답변

0

당신이 UI 스레드에 UI 새로운 Thread에서, UI이어야 업데이 트를 업데이트 할 수 없습니다

당신은

당신이 UI 스레드에서 실행하거나 내가하지 않기 때문에 스레드에서 당신이 방법을 이동 runOnUiThread, 핸들러 또는 AsyncTask를 클래스를 사용할 수 있습니다 UI 스레드가 아닌 initialImageViewSms();에서 업데이트 UI를 시도

다른 코드를 참조하십시오.

+0

tnx shayan, 어떻게? : – user3103823

+0

당신이 원하는 무엇을 원하십니까? 'ImageView'를위한 애니메이션을 시작 하시겠습니까? –

+0

예, 이미지 뷰를위한 애니메이션을 시작하고 싶습니다! – user3103823

관련 문제