1. 程式人生 > >自己動手寫android手機桌面(第一篇)

自己動手寫android手機桌面(第一篇)

廢話不多說了.我們現在要做的不是改原生的Launcher.apk,而是做個相當於普通apk能刪除與安裝的桌面,現在市面上有的如:91的熊貓桌面.還有其他一些在開發的就不多說了.
先什麼都不說來段demo最實際,一切從最原始的興趣驅動,有了小成就才更有動力來了解與學習launcher,需要刨根問底的同學們,自己google先.

Manager.java

Html程式碼
  1. package com.jaryou; 
  2. import com.nebulalauncher.R; 
  3. import android.app.Activity; 
  4. import android.os.Bundle; 
  5. public class Manager extends Activity { 
  6.     /** Called when the activity is first created. */ 
  7.     @Override 
  8.     public void onCreate(Bundle savedInstanceState) { 
  9.         super.onCreate(savedInstanceState); 
  10.         setContentView(R.layout.main); 
  11.     } 

Launcher.java Java程式碼
  1. package com.jaryou.launcher; 
  2. import com.nebulalauncher.R; 
  3. import android.app.Activity; 
  4. import android.os.Bundle; 
  5. publicclass Launcher extends Activity{ 
  6.     /** Called when the activity is first created. */
  7.     @Override
  8.     publicvoid onCreate(Bundle savedInstanceState) { 
  9.         super.onCreate(savedInstanceState); 
  10.         setContentView(R.layout.launcher); 
  11.     } 

launcher.xml
Html程式碼
  1. <?xml version="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:orientation="vertical"
  4.     android:layout_width="fill_parent"
  5.     android:layout_height="fill_parent"
  6.     >
  7. <TextView
  8.     android:layout_width="fill_parent"
  9.     android:layout_height="wrap_content"
  10.     android:text="@string/hello"
  11.     />
  12. </LinearLayout>

main.xml Html程式碼
  1. <?xml version="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:orientation="vertical"
  4.     android:layout_width="fill_parent"
  5.     android:layout_height="fill_parent"
  6.     >
  7. <TextView
  8.     android:layout_width="fill_parent"
  9.     android:layout_height="wrap_content"
  10.     android:text="@string/hello"
  11.     />
  12. </LinearLayout>
AndroidManifest.xml   (關鍵程式碼)
Html程式碼
  1. <?xml version="1.0"encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3.     package="com.nebulalauncher"android:versionCode="1"
  4.     android:versionName="1.0">
  5.     <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
  6. <!-- 作為桌面設定的Activity -->
  7.         <activityandroid:name=".Manager"android:label="@string/app_name">
  8.             <intent-filter>
  9.                 <actionandroid:name="android.intent.action.MAIN"/>
  10.                 <categoryandroid:name="android.intent.category.LAUNCHER"/>
  11.             </intent-filter>
  12.         </activity>
  13.         <!--  作為桌面Activity -->
  14.         <activityandroid:name="com.jaryou.launcher.Launcher">
  15.             <intent-filter>
  16.                 <actionandroid:name="android.intent.action.MAIN"/>
  17.                 <!-- 關鍵部分 開始-->
  18.                 <categoryandroid:name="android.intent.category.HOME"/>
  19.                 <categoryandroid:name="android.intent.category.DEFAULT"/>
  20.                 <!-- 關鍵部分 結束-->
  21.             </intent-filter>
  22.         </activity>
  23.     </application>
  24.     <uses-permissionandroid:name="android.permission.CALL_PHONE"/>
  25.     <uses-permissionandroid:name="android.permission.EXPAND_STATUS_BAR"/>
  26.     <uses-permissionandroid:name="android.permission.GET_TASKS"/>
  27.     <uses-permissionandroid:name="android.permission.READ_CONTACTS"/>
  28.     <uses-permissionandroid:name="android.permission.SET_WALLPAPER"/>
  29.     <uses-permissionandroid:name="android.permission.SET_WALLPAPER_HINTS"/>
  30.     <uses-permissionandroid:name="android.permission.VIBRATE"/>
  31.     <uses-permissionandroid:name="android.permission.WRITE_SETTINGS"/>
  32. </manifest>


新建個android的專案,將上面的程式碼貼進去,然後執行.

ok,然後再長按  掛機鍵 出現桌面選擇提示

1.啟動器(預設launcher)

2. 你的應用名稱

這時候選擇你的應用,會發現桌面變成了你的剛弄的這個demo了.

如果需要變回原來的launcher.只需要要長按掛機鍵然後鬆開就能換回預設桌面.

不多說了.先去體現下吧.