2013-08-02 117 views
0

setimage()setWeather()方法來改變圖片。 我想成爲一個補間動畫,在服務上調用setweathersetimage。 我需要你的幫助。我想做一個動畫的時候改變服務的圖片視圖

@Override 
     public void onCreate() { 
      super.onCreate(); 
      mIv = new ImageView(this); 
      mIv.setImageResource(R.drawable.ic_launcher); 
      mContentResolver = getContentResolver(); 
      mProviderObserver = new ContentObserver(new Handler()){ 
     @Override 
     public void onChange(boolean selfChange, Uri uri) { 
      super.onChange(selfChange, uri); 
      if(uri.compareTo(mUri) == 0){ 
       String weather =mContentResolver.getType(uri); 
       setWeather(weather); 
      } 
     } 
     }; 
     mContentResolver.registerContentObserver(mUri, true, mProviderObserver); 
     rnsmc= new ReadNewSmsMissedCall(mContentResolver); 
     rnsmc.setChangeTelephonyListener(new ChangeTelephonyListener() { 
      public void onChange() { 
       setImage(); 
      } 
     }); 
     rnsmc.registerObserver(); 
      setImage(); 
      mHandler = new Handler(); 
      mRunnable = new Runnable(){ 
       @Override 
       public void run() { 
        if(count == 1){ 
         setImage(); 
         count = 2; 
        } 
        else if(count == 2){ 
         weather = mContentResolver.getType(mUri); 
         setWeather(weather); 
         ount = 1; 
        } 
       mHandler.postDelayed(mRunnable, 1000); 
       } 
      }; 
      mRunnable.run(); 
      mTask = new TimerTask(){ 
       @Override 
       public void run() { 
        new DoTask().execute(url); 
        setWeather(weather); 
       } 
      }; 
       mTimer = new Timer(); 
       mTimer.schedule(mTask, 500, 100000); 
       new DoTask().execute(url); 
      } 
      public class DoTask extends AsyncTask<String, Void, String> { 

      @Override 
      protected String doInBackground(String... params) { 
       for (String urlVal : params) { 
        mPullParser = new PullParser(urlVal); 
        } 
      mData = mPullParser.parse(); 
      ContentValues value = new ContentValues(); 
      value.put("weather", mData); 
      mContentResolver.insert(mUri,value); 
      return mData; 
       } 
      } 
      private void setImage(){ // 
       int smsCount = rnsmc.getCountNewSms(); 
       int callCount = rnsmc.getCountMissedCall(); 
       if(smsCount > 0 && callCount >0){ 
        mIv.setImageResource(R.drawable.bump); 
        count = 1; 
       } 
      } 
      private void setWeather(String weather){/// 

       } 
+0

你在使用AsyncTask嗎? –

+0

@哈迪是!嗯.. setweather,它通過解析天氣來轉換圖像。 解析是在asyctask上。 –

回答

0

您必須使用asynctask如下。

@Override 
    protected void onPreExecute() { 

//Start your custom animation here OR display progress dialog 
} 

doInBackground(....) 
{ 

// code for getting data from webservice 
} 

onPostExecute(...) 
{ 
// stop your animation OR dialog 
} 

看到這個Example。希望能幫助到你。

+0

我是一個非常非常的Android初學者。 我需要使用asynctask嗎? –

+0

是的,你需要使用asynctask。 –

+0

請參閱[本示例](http://androiddevelopmentworld.blogspot.in/2013/04/how-to-display-image-from-url-in-android.html),其中我使用asynctask顯示來自url的圖像。它易於理解和實施。如果你有任何問題,只需粘貼你的代碼,我會告訴你如何實現asynctask。 –

相關問題