android 閃屏仍是會出現黑屏問題

 1 public class SplashActivity extends Activity{
 2 
 3  @Override
 4  protected void onCreate(Bundle savedInstanceState) {
 5   super.onCreate(savedInstanceState);
 6   setContentView(R.layout.shan);
 7   
 8   new Handler().postDelayed(new Runnable() {
 9    @Override
10    public void run() {
11     Intent intent = new Intent(ActSplashScreen.this,MainActivity.class);  //從啓動動畫ui跳轉到主ui(MainActivity)
12     startActivity(intent);
13     SplashActivity .this.finish();    // 結束啓動動畫界面
14    }
15   }, 3000);    //啓動動畫持續3秒鐘
16  }
17     
18 }

 

(如下轉自:http://www.jb51.net/article/40111.htm)
Android 避免APP啓動閃黑屏的解決辦法(Theme和Style)
前幾天Boss就反應說,機器每次啓動程序都會閃一下黑屏,這個客戶不接受。沒辦法,只能想一想怎麼解決,最後找到了下面的方法。閃黑屏的緣由主要是咱們啓動Activity的時候,須要跑完onCreate和onResume纔會顯示界面。也就是說須要處理一些數據後,纔會顯示。按照這種思路,是否是我把初始化的工做盡可能減小就能夠避免黑屏?事實是,就算你onCreate啥都不作,仍然會閃一下黑屏,由於初始化解析界面時須要必定時間。下面是解決辦法:
一、自定義Themeandroid

(1)設置背景圖Themeapi

1 <style name="Theme.AppStartLoad" parent="android:Theme">  
2     <item name="android:windowBackground">@drawable/ipod_bg</item>  
3     <item name="android:windowNoTitle">true</item>  
4 </style>

(2)設置透明Themeapp

1 <style name="Theme.AppStartLoadTranslucent" parent="android:Theme">  
2     <item name="android:windowIsTranslucent">true</item> 
3     <item name="android:windowNoTitle">true</item>  
4 </style>

上面我定義了兩種Theme,第一種Theme就是設置一張背景圖。當程序啓動時,首先顯示這張背景圖,避免出現黑屏。第二種Theme是把樣式設置爲透明,程序啓動後不會黑屏而是整個透明瞭,等到界面初始化完才一次性顯示出來。下面說說兩種方式的優缺點:
•Theme1 程序啓動快,界面先顯示背景圖,而後再刷新其餘界面控件。給人刷新不一樣步感受。
•Theme2 給人程序啓動慢感受,界面一次性刷出來,刷新同步。ide

二、修改AndroidManifest.xml
爲了使上面Theme生效,咱們須要設置一些Activity的Themepost

 1 <application
 2     android:allowBackup="true"
 3     android:icon="@drawable/ipod_icon"
 4     android:label="@string/app_name"
 5     android:launchMode="singleTask">
 6 <!-- iPod主界面 -->
 7 <activity
 8     android:name="com.apical.apicalipod.IPodMainActivity"
 9   <!-- 使用上面定義的樣式 mythou-->
10     android:theme="@style/Theme.AppStartLoad"
11     android:label="@string/app_name" >
12     <intent-filter>
13     <action android:name="android.intent.action.MAIN" />
14     <category android:name="android.intent.category.LAUNCHER" />
15     </intent-filter>
16 </activity>
17 //......
18 </application>

•能夠在Activity裏面增長上面自定義的樣式。另外在Application裏面增長也是能夠的,並且是全局效果。
•自定義Theme放在 /res/values/styles.xml 裏面。若是沒有這個文件,本身添加一個便可。
•若是存在多個Activity切換,中間也可能會存在短暫黑屏問題。緣由也是Activity啓動的時候須要初始化加載數據,若是想避免這種狀況,能夠在你切換的Activity裏面增長上面的樣式。
•上面兩種樣式均可以免黑屏。能夠實際測試一下你的程序選擇一種效果。
•這個只是把黑屏避免了,可是若是你程序初始化啓動慢,仍是會給人程序啓動慢的感受。須要自行優化程序初始化過程測試

相關文章
相關標籤/搜索