android 怎样将主菜单图标改成按安装时间排序

1. 在 LauncherModel.java 中增加例如以下代码, 假设是KK Launcher3 ApplicationInfo要替换为AppInfo

public static final Comparator<ApplicationInfo> getInstallTimeComparator() {

return new Comparator<ApplicationInfo>() {

public final int compare(ApplicationInfo a, ApplicationInfo b) {

return a.firstInstallTime == b.firstInstallTime ?

0 : a.firstInstallTime > b.firstInstallTime ? 1:-1;

}

};

}

public static class InstallTimeComparator implements Comparator<ResolveInfo> {

private PackageManager mPackageManager;

List<ResolveInfo> mapps;

InstallTimeComparator(PackageManager pm, List<ResolveInfo> apps)

{

mPackageManager = pm;

mapps = apps;

}

public final int compare(ResolveInfo a, ResolveInfo b) {

String packageNameA = a.activityInfo.applicationInfo.packageName;

String packageNameB = b.activityInfo.applicationInfo.packageName;

long firstInstallTimeA = 0, firstInstallTimeB = 0;

try{

firstInstallTimeA = mPackageManager.getPackageInfo(packageNameA, 0).firstInstallTime;

firstInstallTimeB = mPackageManager.getPackageInfo(packageNameB, 0).firstInstallTime;

}catch(Exception e){

e.printStackTrace();

return 0;

}

return firstInstallTimeA == firstInstallTimeB ?

0 : firstInstallTimeA > firstInstallTimeB ?

1:-1;

}

};

2. 改动 LauncherModel.java 的 loadAllAppsByBatch() 方法:

Collections.sort(apps,new LauncherModel.ShortcutNameComparator(packageManager, mLabelCache));

替换成:

Collections.sort(apps,new InstallTimeComparator(packageManager, apps));

3. 改动 AppsCustomizePagedview.java 的 setApps 方法

Collections.sort(mApps, LauncherModel.getAppNameComparator());

替换成:

Collections.sort(mApps, LauncherModel.getInstallTimeComparator());

4. 系统排序会调用reorderApps方法,因此您在其它条件下也要达到安装时间排序,请在相应的reorderApps方法调用前添加

Collections.sort(mApps, LauncherModel.getInstallTimeComparator());

比如:安装的应用后也想安装新的排序方式排列,须要在AppsCustomizePagedview.java 的 addApps 方法前添加sort的调用

时间: 2024-10-25 21:32:55

android 怎样将主菜单图标改成按安装时间排序的相关文章

android 如何将主菜单图标改成按安装时间排序

1. 在 LauncherModel.java 中加入如下代码, 如果是KK Launcher3 ApplicationInfo要替换为AppInfo public static final Comparator<ApplicationInfo> getInstallTimeComparator() { return new Comparator<ApplicationInfo>() { public final int compare(ApplicationInfo a, App

如何将主菜单图标改成按安装时间排序

1. 在 LauncherModel.java 中加入如下代码, 如果是KK Launcher3 ApplicationInfo要替换为AppInfo public static final Comparator<ApplicationInfo> getInstallTimeComparator() { return new Comparator<ApplicationInfo>() { public final int compare(ApplicationInfo a, App

怎样将主菜单图标改成按安装时间排序

1. 在 LauncherModel.java 中增加例如以下代码, 假设是KK Launcher3 ApplicationInfo要替换为AppInfo public static final Comparator<ApplicationInfo> getInstallTimeComparator() { return new Comparator<ApplicationInfo>() { public final int compare(ApplicationInfo a, A

android launcher2开发之 有抽屉改成无抽屉

在launcher.java中在createShortcut方法中   屏蔽所有应用按钮 改动之前 View createShortcut(int layoutResId, ViewGroup parent, ShortcutInfo info) { BubbleTextView favorite = (BubbleTextView) mInflater.inflate( layoutResId, parent, false); favorite.applyFromShortcutInfo(in

android 如何让主菜单的背景显示为壁纸

ICS/ICS2: 1.请修改 packages\apps\Launcher2\res\layout\apps_customize_pane.xml <com.android.launcher2.AppsCustomizeTabHost xmlns:android="http://schemas.android.com/apk/res/android" xmlns:launcher="http://schemas.android.com/apk/res/com.andr

Toolbar上返回图标改成白色

在Toolbar标签中加入 app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar",这样的话,字体和图标都显示白色

完美解决Android使用Zxing扫描二维码改成竖屏后,后面的预览画面出现了拉伸,扭曲的情况

完美解决解决Android使用Zxing扫描二维码改成竖屏后,后面的预览画面出现了拉伸,扭曲的情况 第一步:找到com.zxing.camera包下的CameraConfigurationManager.java文件中的void initFromCameraParameters(Camera camera)方法 第二步:在 Log.d(TAG, "Screen resolution: " + screenResolution);后加上如下的代码 Point screenResoluti

Android Launcher 怎样去掉主菜单,全部应用摆在桌面,相似小米桌面

前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net          雨季o莫忧离:http://blog.csdn.net/luckkof 正文 Launcher3/src/com/android/launcher3/ 1. AppsCustomizePagedView.java public static boolean DISABLE_ALL_APPS =

Android开发中利用imeOptions属性将键盘回车键改成搜索等功能键【提高用户输入体验】

Android中键盘输入是用户输入交互的最常用最直接的手段,关于键盘输入,有几点可以提高用户使用体验. 第一:弹出键盘整体页面上移,使键盘不遮挡控件,需要在AndroidManifest设置对应Activity的windowSoftInputMode属性 stateVisible 设置为这个属性,可以将软键盘召唤出来,即使在界面上没有输入框的情况下也可以强制召唤出来 adjustResize 这个属性表示Activity的主窗口总是会被调整大小,从而保证软键盘显示空间. 效果如下图所示: <ac