2011-11-30 4 views
0

내 앱이 이미지 데이터를로드하는 동안 스플래시/시작 화면을 표시하려고했지만 데이터로드는 괜찮지 만 splash.xml의 백그라운드 이미지는 표시되지 않습니다. 쇼, 아래 코드를 게시하고 있습니다.splash.xml의 스플래시 배경이 액티비티에 표시되지 않음 SplashScreen.java

public class Splash extends Activity { 

private ChannelDB mDB; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash); 
    AppConnect.getInstance(this); 

    Thread splashThread = new Thread() { 
     @Override 
     public void run() { 
      try { 
       if (tabIsExist(null)==true){ 
       mDB.Reset(); 

        Bitmap bigbang1 = BitmapFactory.decodeResource(getResources(), R.drawable.bigbang1); 
        Bitmap bigbang2 = BitmapFactory.decodeResource(getResources(), R.drawable.bigbang2); 
        Bitmap bigbang3 = BitmapFactory.decodeResource(getResources(), R.drawable.bigbang3); 
        Bitmap bigbang4 = BitmapFactory.decodeResource(getResources(), R.drawable.bigbang4); 


        mDB.createchannelEntry(new ChannelPoster(bigbang1, "生活大爆炸(第一季)" ,"http://appkon.com/hdtvs/channel/bigbang1.xml" ,"http://movie.douban.com/subject/5372374/")); 
        mDB.createchannelEntry(new ChannelPoster(bigbang2, "生活大爆炸(第二季)" ,"http://appkon.com/hdtvs/channel/bigbang2.xml" ,"http://movie.douban.com/subject/3190880/")); 
        mDB.createchannelEntry(new ChannelPoster(bigbang3, "生活大爆炸(第三季)" ,"http://appkon.com/hdtvs/channel/bigbang3.xml" ,"http://movie.douban.com/subject/3990470/")); 
        mDB.createchannelEntry(new ChannelPoster(bigbang4, "生活大爆炸(第四季)" ,"http://appkon.com/hdtvs/channel/bigbang4.xml" ,"http://movie.douban.com/subject/4804079/")); 

        } 
       }catch (Exception e) { 


         Intent i = new Intent(); 
         i.setClassName("com.appkon.hdtvs", 
             "com.appkon.hdtvs.HDtvs"); 
         finish(); 
         startActivity(i); 
        } 
       finally { 

        Intent i = new Intent(); 
        i.setClassName("com.appkon.hdtvs", 
          "com.appkon.hdtvs.HDtvs"); 
        finish(); 
        startActivity(i); 
       } 

      } 

    }; 
    splashThread.start(); 
} 

    public boolean tabIsExist(String channelS_TABLE){ 
     boolean result = false; 
     if(channelS_TABLE == null){ 
       return false; 
     } 
     Cursor cursor= ChannelDB.check(); 
     startManagingCursor(cursor); 
     try { 
       if(cursor.moveToNext()){ 
         int count = cursor.getInt(0); 
         if(count>0){ 
           result = true; 
         } 
       } 

     } catch (Exception e) { 
      Log.e(this.toString(),"error:"+e.toString()); 
      Intent intent = new Intent(this,HDtvs.class); 
      startActivity(intent); 
      this.finish(); 
     }     
     return result; 
    } 


} 

는이 내 splash.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/splash"> 

</LinearLayout> 
+1

를 사용하여 비동기 작업 클래스는 쉽게 ... –

+1

은, 소니에 동의 AsyncTask를 사용하고 doInBackground로 데이터로드 코드를 삽입합니다. http://developer.android.com/reference/android/os/AsyncTask.html – Tony

답변

0

첫 포스트의 xD이 도움이 되었으면 좋겠 만들 수있는 더 나은 방법을 참조한다.

당신은

<activity android:name=".Splash" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

LAUNCHER에 범주를 설정하는 것을 잊지 마십시오 당신의 시작 활동을 포함하는의 AndroidManifest.xml을 편집해야하고 주요 활동이

<activity android:name=".Main" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="com.anibalismo.sovica.MAIN" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

안되과 같아야 잊지 메인 카테고리를 DEFAULT로 변경하고 메인 액션 이름을 "com.anibalismo.sovica.MAIN"으로 변경하십시오. 귀하의 패키지 이름을 반드시 사용해야한다고 생각합니다.

출처 : Youtube: thenewboston

관련 문제