Launcher系统默认设置修改总结
1、launcher的布局太居中,要想两边拉伸 <\packages\apps\Launcher2\res\values\dimens.xml> <dimen name=" apps_customize_pageLayoutPaddingLeft">40dp</dimen> <dimen name=" apps_customize_pageLayoutPaddingRight">40dp</dimen> apps tab栏的宽度( Launcher2 icon 数目、大小) \packages\apps\Launcher2\res\layout-sw720dp\workspace.xml> launcher:cellCountX="10"
launcher:cellCountY="6"
2、或者不想改数目: <\packages\apps\Launcher2\src\com\android\launcher2\AppsCustomizeTabHost.java> protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { mTabs.getLayoutParams().width = contentWidth + 108;
3、workspace、AppsCustomize的cell大小: <\packages\apps\Launcher2\res\values-sw600dp\dimens.xml> <dimen name="workspace_cell_width">110dip</dimen>
<dimen name="workspace_cell_height">110dip</dimen>
<dimen name="apps_customize_cell_width">110dp</dimen>
<dimen name="apps_customize_cell_height">110dp</dimen>
4、里面icon的大小: <\packages\apps\Launcher2\res\values-sw600dp\dimens.xml> <dimen name="app_icon_size">80dp</dimen>
5、workspace没有拖动,第二页第一个icon出现在第一页的最右边: 加大workspace的宽度,或间距: workspace的paddingLeft、paddingRight: <\packages\apps\Launcher2\res\values-sw600dp-land\dimens.xml> <dimen name="workspace_left_padding">50dip</dimen>
<dimen name="workspace_right_padding">50dip</dimen>
workspace两屏间距: <dimen name="workspace_page_spacing">100dp</dimen>
修改workspace的字体大小: 如果没有就添加: <\packages\apps\Launcher2\res\values-sw480dp\styles.xml> <style name="WorkspaceIcon.Landscape"> <item name="android:textSize">13sp</item> </style>
6、加wallpaper: 1.<\packages\apps\Launcher2\res\values-sw600dp\wallpapers.xml> 加wallpaper的名字 2.<\packages\apps\Launcher2\res\drawable-nodpi> 加如wallpaper
7、gallery的widget默认添加到workspace上: <\packages\apps\Launcher2\res\xml\default_workspace.xml> <!-- Middle screen [2] -->
<appwidget
launcher:packageName="com.android.gallery3d"
launcher:className="com.android.gallery3d.gadget.PhotoAppWidgetProvider"
launcher:screen="2"
launcher:x="1"
launcher:y="0"
launcher:spanX="3"
launcher:spanY="3" />
<\packages\apps\Gallery2\src\com\android\gallery3d\gadget\PhotoAppWidgetProvider.java> @Override
public void onUpdate(Context context,
for (int id : appWidgetIds) {
if(id == 2){ helper.setWidget(id,WidgetDatabaseHelper.TYPE_SHUFFLE, null);
}
}
8、在桌面上添加网页的快捷方式: <\packages\apps\Launcher2\res\xml\default_workspace.xml> <shortcut launcher:title="@string/application_name"
launcher:icon="@drawable/ic_no_applicati**"
launcher:uri="http://www.aaa.com"
launcher:screen="0"
launcher:x="0"
launcher:y="3" />
9、在桌面上默认放文件夹: <\packages\apps\Launcher2\res\xml\default_workspace.xml> <folder
launcher:screen="2"
launcher:x="2"
launcher:y="2"
launcher:title = "@string/application_name" >
<favorite
launcher:className="com.android.deskclock.DeskClock"
launcher:packageName="com.android.deskclock"
launcher:container="1"
launcher:x="0"
launcher:y="0" />
<favorite
launcher:className="com.android.calculator2.Calculator"
launcher:packageName="com.android.calculator2"
launcher:container="1"
launcher:x="0"
launcher:y="0" />
</folder>
10、桌面上添加快捷方式,点击播放视频: <\packages\apps\Launcher2\res\xml-sw720dp\default_workspace.xml> <shortcut launcher:title="@string/application_name" launcher:icon="@drawable/ic_launcher_application" launcher:uri="[url=]file:///mnt/sdcard/external_sdcard/1...playermenu;end[/url]" launcher:screen="2" launcher:x="1" launcher:y="1" />
11、安装apk,显示隐藏的google play: 1.写google显示的apk: GooglePlayShow的activity: ComponentName componentname = new ComponentName("com.android.vending", "com.android.vending.AssetBrowserActivity");
packagemanager.setComponentEnabledSetting(componentname, 1, 1);
componentname = new ComponentName("com.example.googleplayshow", "com.example.googleplayshow.MainActivity");
packagemanager.setComponentEnabledSetting(componentname, 2, 1);
2.<\packages\apps\Launcher2\src\com\android\launcher2\LauncherModel.java> } else if (Intent.ACTION_PACKAGE_ADDED.equals(action)) {
if (!replacing) {
if(packageName.equals("com.example.googleplayshow")){
context.startActivity(new Intent().setComponent(new ComponentName("com.example.googleplayshow", "com.example.googleplayshow.MainActivity")).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
}
op = PackageUpdatedTask.OP_ADD;
} else {
op = PackageUpdatedTask.OP_UPDATE;
}
}
隐藏google search: <\packages\apps\Launcher2\src\com\android\launcher2\Launcher.java> private void setupViews() { mSearchDropTargetBar = (SearchDropTargetBar) mDragLayer.findViewById(R.id.qsb_bar);
mSearchDropTargetBar.hideSearchBar(false);
void showWorkspace(boolean animated, Runnable onCompleteRunnable) { //mSearchDropTargetBar.showSearchBar(wasInSpringLoadedMode);
12、widget中隐藏google play: <\packages\apps\Launcher2\src\com\android\launcher2\AppsCustomizePagedView.java> updatePackages里面添加: if(!widget.provider.getPackageName().equals("com.android.vending") && !widget.provider.getPackageName().equals("com.android.vending.MarketWidgetProvider")){ mWidgets.add(widget); }
13、clock的widget下部分显示不全,向上调 <\packages\amlogic\Launcher2\res\values\dimens.xml> <dimen name="app_widget_preview_padding_top">10dp</dimen>
修改widget的text的size: <\packages\amlogic\Launcher2\res\layout\apps_customize_widget.xml> android:id="@+id/widget_name" android:textSize="20sp" />
14、launcher中隐藏一个app: 需要该app的packageName,例如要隐藏settings: <\packages\apps\Launcher2\src\com\android\launcher2\LauncherModel.java> private void loadAllAppsByBatch() { apps = packageManager.queryIntentActivities(mainIntent, 0);
ResolveInfo removeApp = null; for(ResolveInfo info:apps){ if(info.activityInfo.packageName.equals("com.android.settings")){ removeApp = info; } } if(removeApp != null){ apps.remove(removeApp); }
15、launcher中隐藏多个app: 红色为改动部分 <\packages\apps\Launcher2\src\com\android\launcher2\LauncherModel.java> private void loadAllAppsByBatch() { final PackageManager packageManager = mContext.getPackageManager(); List<ResolveInfo> apps = new ArrayList<ResolveInfo>(); List<ResolveInfo> allApps = null;
int N = Integer.MAX_VALUE;
int startIndex; int i=0; int batchSize = -1; while (i < N && !mStopped) { if (i == 0) { mAllAppsList.clear(); final long qiaTime = DEBUG_LOADERS ? SystemClock.uptimeMillis() : 0;
allApps = packageManager.queryIntentActivities(mainIntent, 0); for(ResolveInfo info : allApps){ if(info.activityInfo != null && !info.activityInfo.packageName.equalsIgnoreCase("com.android.email") && !info.activityInfo.packageName.equalsIgnoreCase("com.android.providers.downloads.ui") && !info.activityInfo.packageName.equalsIgnoreCase("com.adobe.flashplayer")){ apps.add(info); } }
|