Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android 如何調整launcher screen的布局

Android 如何調整launcher screen的布局

編輯:高級開發

 android系統默認的啟動之後的icon布局是4行4列,第一行由search widget完全占據。這樣的設計對於小屏幕的手機比較合適,但是對於大屏幕的tablet之類的設備而言,巨大的屏幕上只能擺放12個icons(第一行被search widget占據),就顯得很空蕩,icon之間的距離太寬了,顯得不是那麼美觀。

  那麼如何來調整launcher home screen的布局呢?

  查看android_srcpackagesaPPSLaunchereslayout-landworkspace_screen.XML

  android_srcpackagesaPPSLaunchereslayout-portworkspace_screen.XML

  一個是橫屏,一個是豎屏的布局。調整字段,參數代表個數。

  launcher:shortAxisCells="4" launcher:longAxisCells="4"

  ===============

  第二部分:調整launcher:shortAxisCells="6" launcher:longAxisCells="6"

  這樣調整後,laucher home screen的icon變為6行,6列,顯得比較緊湊了。但是search widget就比較別扭了,只占據了左邊的一部分,並沒有占據整個第一行。那麼如何解決這個問題?

  調整Android_srcpackagesaPPSLaunchersrccomandroidlauncherWidget.Java

  /**

  * Represents one instance of a Launcher widget, such as search.

  */

  class Widget extends ItemInfo {

  int layoutResource;

  static Widget makeSearch() {

  Widget w = new Widget();

  w.itemType = LauncherSettings.Favorites.ITEM_TYPE_WIDGET_SEARCH;

  w.spanX = 4;

  w.spanY = 1;

  w.layoutResource = R.layout.widget_search;

  return w;

  }

  }

  可以看到指定的search widget x方向占據4個cells,y軸方向占據一個cells,這對原來4*4的布局是ok的。但是現在我們改為6*6的布局,就應該隨之變化。我們做如下修改:

  w.spanX = 6;

  w.spanY = 1;

  這樣整個修改效果完成。如下圖所示

land

  接上頁

port

  第三部分:附加,在android2.2版本的系統中,修改search widget的布局不是在Widget.Java這個文件中,這個文件在這個版本中部存在。修改在

  LauncherProvider.Java中584行

  // Original widgets might not have valid spans when upgrading

  if (favoriteType == Favorites.ITEM_TYPE_WIDGET_SEARCH) {

  values.put(LauncherSettings.Favorites.SPANX, 4);

  values.put(LauncherSettings.Favorites.SPANY, 1);

  } else {

  values.put(LauncherSettings.Favorites.SPANX, 2);

  values.put(LauncherSettings.Favorites.SPANY, 2);

  }

  752行

  private boolean addSearchWidget(SQLiteDatabase db, ContentValues values) {

  ComponentName cn = getSearchWidgetProvider();

  return addAppWidget(db, values, cn, 4, 1);

  }

  第四部分:經過調試,發現Launcher2和Launcher裡面的代碼不同,經過以上的修改,在重啟後,還是恢復成44的格局。還要修改一個地方

  Launcher裡面的常數。

  static final int NUMBER_CELLS_X = 4;

  static final int NUMBER_CELLS_Y = 4;

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved