當前位置: 首頁>>代碼示例>>Java>>正文


Java ActivityInfo.loadIcon方法代碼示例

本文整理匯總了Java中android.content.pm.ActivityInfo.loadIcon方法的典型用法代碼示例。如果您正苦於以下問題:Java ActivityInfo.loadIcon方法的具體用法?Java ActivityInfo.loadIcon怎麽用?Java ActivityInfo.loadIcon使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.content.pm.ActivityInfo的用法示例。


在下文中一共展示了ActivityInfo.loadIcon方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: getApplicationInfo

import android.content.pm.ActivityInfo; //導入方法依賴的package包/類
private static ApplicationInfo getApplicationInfo(PackageManager manager, Intent intent) {
    final ResolveInfo resolveInfo = manager.resolveActivity(intent, 0);

    if (resolveInfo == null) {
        return null;
    }

    final ApplicationInfo info = new ApplicationInfo();
    final ActivityInfo activityInfo = resolveInfo.activityInfo;
    info.icon = activityInfo.loadIcon(manager);
    if (info.title == null || info.title.length() == 0) {
        info.title = activityInfo.loadLabel(manager);
    }
    if (info.title == null) {
        info.title = "";
    }
    return info;
}
 
開發者ID:sdrausty,項目名稱:buildAPKsSamples,代碼行數:19,代碼來源:Home.java

示例2: fixTaskDescription

import android.content.pm.ActivityInfo; //導入方法依賴的package包/類
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void fixTaskDescription(Activity activity, ActivityInfo targetInfo) {
    try {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            PackageManager pm = mHostContext.getPackageManager();
            String lablel = String.valueOf(targetInfo.loadLabel(pm));
            Drawable icon = targetInfo.loadIcon(pm);
            Bitmap bitmap = null;
            if (icon instanceof BitmapDrawable) {
                bitmap = ((BitmapDrawable) icon).getBitmap();
            }
            if (bitmap != null) {
                activity.setTaskDescription(new android.app.ActivityManager.TaskDescription(lablel, bitmap));
            } else {
                activity.setTaskDescription(new android.app.ActivityManager.TaskDescription(lablel));
            }
        }
    } catch (Throwable e) {
        Log.w(TAG, "fixTaskDescription fail", e);
    }
}
 
開發者ID:amikey,項目名稱:DroidPlugin,代碼行數:22,代碼來源:PluginInstrumentation.java

示例3: doInBackground

import android.content.pm.ActivityInfo; //導入方法依賴的package包/類
@Override
protected Void doInBackground(DonateActivity.DonateItem... params) {
    Context context = mReference.get();
    if (context != null) {
        PackageManager packageManager = context.getPackageManager();
        for (DonateActivity.DonateItem item : params) {
            ActivityInfo ai = packageManager.resolveActivity(item.intent, 0).activityInfo;
            item.label = ai.loadLabel(packageManager);
            item.icon = ai.loadIcon(packageManager);
            this.publishProgress(item);
        }
    }
    return null;
}
 
開發者ID:brevent,項目名稱:Brevent,代碼行數:15,代碼來源:DonateTask.java

示例4: getAppInfoFromValue

import android.content.pm.ActivityInfo; //導入方法依賴的package包/類
private AppInfo getAppInfoFromValue(String value) {
    AppInfo appInfo = new AppInfo();
    if (value == null) return appInfo;

    try {
        Intent intent = Intent.parseUri(value, 0);

        int iconResId = intent.getStringExtra("iconResName") != null ?
                mResources.getIdentifier(intent.getStringExtra("iconResName"),
                        "drawable", mContext.getPackageName()) : 0;
        if (iconResId != 0) {
            appInfo.icon = mResources.getDrawable(iconResId);
        } else if (intent.hasExtra("icon")) {
            final String appIconPath = intent.getStringExtra("icon");
            if (appIconPath != null) {
                File f = new File(appIconPath);
                if (f.exists() && f.canRead()) {
                    FileInputStream fis = new FileInputStream(f);
                    appInfo.icon = new BitmapDrawable(mResources, BitmapFactory.decodeStream(fis));
                    fis.close();
                }
            }
        }

        int mode = intent.getIntExtra("mode", MODE_APP);
        if (mode == MODE_APP) {
            ComponentName cn = intent.getComponent();
            ActivityInfo ai = mPackageManager.getActivityInfo(cn, 0);
            appInfo.name = (ai.loadLabel(mPackageManager).toString());
            if (appInfo.icon == null) {
                appInfo.icon = ai.loadIcon(mPackageManager);
            }
        } else if (mode == MODE_SHORTCUT) {
            appInfo.name = intent.getStringExtra("prefLabel");
        }
        return appInfo;
    } catch (Exception e) {
        e.printStackTrace();
        return appInfo;
    }
}
 
開發者ID:WrBug,項目名稱:GravityBox,代碼行數:42,代碼來源:AppPickerPreference.java

示例5: reloadButtons

import android.content.pm.ActivityInfo; //導入方法依賴的package包/類
/**
   * 核心方法,加載最近啟動的應用程序 注意:這裏我們取出的最近任務為 MAX_RECENT_TASKS +
   * 1個,因為有可能最近任務中包好Launcher2。 這樣可以保證我們展示出來的 最近任務 為 MAX_RECENT_TASKS 個
   * 通過以下步驟,可以獲得近期任務列表,並將其存放在了appInfos這個list中,接下來就是展示這個list的工作了。
   */
  public static List<HashMap<String, Object>> reloadButtons(Context context, int appNumber) {
      List<HashMap<String, Object>> appInfos = new ArrayList<>();
      int MAX_RECENT_TASKS = appNumber; // allow for some discards
      int repeatCount = appNumber;// 保證上麵兩個值相等,設定存放的程序個數

/* 每次加載必須清空list中的內容 */
      appInfos.removeAll(appInfos);

      // 得到包管理器和activity管理器
      final PackageManager pm = context.getPackageManager();
      final ActivityManager am = (ActivityManager) context
              .getSystemService(Context.ACTIVITY_SERVICE);

      // 從ActivityManager中取出用戶最近launch過的 MAX_RECENT_TASKS + 1 個,以從早到晚的時間排序,
      // 注意這個 0x0002,它的值在launcher中是用ActivityManager.RECENT_IGNORE_UNAVAILABLE
      // 但是這是一個隱藏域,因此我把它的值直接拷貝到這裏
      try {
          final List<ActivityManager.RecentTaskInfo> recentTasks = am
                  .getRecentTasks(MAX_RECENT_TASKS + 1, 0x0002);


          // 這個activity的信息是我們的launcher
          ActivityInfo homeInfo = new Intent(Intent.ACTION_MAIN).addCategory(
                  Intent.CATEGORY_HOME).resolveActivityInfo(pm, 0);
          int numTasks = recentTasks.size();
          for (int i = 0; i < numTasks && (i < MAX_RECENT_TASKS); i++) {
              HashMap<String, Object> singleAppInfo = new HashMap<String, Object>();// 當個啟動過的應用程序的信息
              final ActivityManager.RecentTaskInfo info = recentTasks.get(i);

              Intent intent = new Intent(info.baseIntent);
              if (info.origActivity != null) {
                  intent.setComponent(info.origActivity);
              }
              /**
               * 如果找到是launcher,直接continue,後麵的appInfos.add操作就不會發生了
               */
              if (homeInfo != null) {
                  if (homeInfo.packageName.equals(intent.getComponent()
                          .getPackageName())
                          && homeInfo.name.equals(intent.getComponent()
                          .getClassName())) {
                      MAX_RECENT_TASKS = MAX_RECENT_TASKS + 1;
                      continue;
                  }
              }
              // 設置intent的啟動方式為 創建新task()【並不一定會創建】
              intent.setFlags((intent.getFlags() & ~Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED)
                      | Intent.FLAG_ACTIVITY_NEW_TASK);
              // 獲取指定應用程序activity的信息(按我的理解是:某一個應用程序的最後一個在前台出現過的activity。)
              final ResolveInfo resolveInfo = pm.resolveActivity(intent, 0);
              if (resolveInfo != null) {
                  final ActivityInfo activityInfo = resolveInfo.activityInfo;
                  final String title = activityInfo.loadLabel(pm).toString();
                  final int uid = activityInfo.applicationInfo.uid;
                  Drawable icon = activityInfo.loadIcon(pm);

                  if (title != null && title.length() > 0 && icon != null) {
                      singleAppInfo.put("title", title);
                      singleAppInfo.put("icon", icon);
                      singleAppInfo.put("tag", intent);
                      singleAppInfo.put("uid", uid);
                      singleAppInfo.put("packageName", activityInfo.packageName);
                      appInfos.add(singleAppInfo);
                  }
              }
          }
          return appInfos;
      } catch (Exception e) {
          e.printStackTrace();
          Log.d("mmm", e.getMessage());
          return null;
      }
  }
 
開發者ID:EdgarNg1024,項目名稱:PreAPP,代碼行數:79,代碼來源:MyWindowManager.java

示例6: reloadButtons

import android.content.pm.ActivityInfo; //導入方法依賴的package包/類
/**
   * 核心方法,加載最近啟動的應用程序 注意:這裏我們取出的最近任務為 MAX_RECENT_TASKS +
   * 1個,因為有可能最近任務中包好Launcher2。 這樣可以保證我們展示出來的 最近任務 為 MAX_RECENT_TASKS 個
   * 通過以下步驟,可以獲得近期任務列表,並將其存放在了appInfos這個list中,接下來就是展示這個list的工作了。
   */
  public static void reloadButtons(Activity activity, List<HashMap<String, Object>> appInfos, int appNumber) {
      int MAX_RECENT_TASKS = appNumber; // allow for some discards
      int repeatCount = appNumber;// 保證上麵兩個值相等,設定存放的程序個數

/* 每次加載必須清空list中的內容 */
      appInfos.removeAll(appInfos);

      // 得到包管理器和activity管理器
      final Context context = activity.getApplication();
      final PackageManager pm = context.getPackageManager();
      final ActivityManager am = (ActivityManager) context
              .getSystemService(Context.ACTIVITY_SERVICE);

      // 從ActivityManager中取出用戶最近launch過的 MAX_RECENT_TASKS + 1 個,以從早到晚的時間排序,
      // 注意這個 0x0002,它的值在launcher中是用ActivityManager.RECENT_IGNORE_UNAVAILABLE
      // 但是這是一個隱藏域,因此我把它的值直接拷貝到這裏
      try {
          final List<ActivityManager.RecentTaskInfo> recentTasks = am
                  .getRecentTasks(MAX_RECENT_TASKS + 1, 0x0002);


          // 這個activity的信息是我們的launcher
          ActivityInfo homeInfo = new Intent(Intent.ACTION_MAIN).addCategory(
                  Intent.CATEGORY_HOME).resolveActivityInfo(pm, 0);
          int numTasks = recentTasks.size();
          for (int i = 0; i < numTasks && (i < MAX_RECENT_TASKS); i++) {
              HashMap<String, Object> singleAppInfo = new HashMap<String, Object>();// 當個啟動過的應用程序的信息
              final ActivityManager.RecentTaskInfo info = recentTasks.get(i);

              Intent intent = new Intent(info.baseIntent);
              if (info.origActivity != null) {
                  intent.setComponent(info.origActivity);
              }
              /**
               * 如果找到是launcher,直接continue,後麵的appInfos.add操作就不會發生了
               */
              if (homeInfo != null) {
                  if (homeInfo.packageName.equals(intent.getComponent()
                          .getPackageName())
                          && homeInfo.name.equals(intent.getComponent()
                          .getClassName())) {
                      MAX_RECENT_TASKS = MAX_RECENT_TASKS + 1;
                      continue;
                  }
              }
              // 設置intent的啟動方式為 創建新task()【並不一定會創建】
              intent.setFlags((intent.getFlags() & ~Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED)
                      | Intent.FLAG_ACTIVITY_NEW_TASK);
              // 獲取指定應用程序activity的信息(按我的理解是:某一個應用程序的最後一個在前台出現過的activity。)
              final ResolveInfo resolveInfo = pm.resolveActivity(intent, 0);
              if (resolveInfo != null) {
                  final ActivityInfo activityInfo = resolveInfo.activityInfo;
                  final String title = activityInfo.loadLabel(pm).toString();
                  Drawable icon = activityInfo.loadIcon(pm);

                  if (title != null && title.length() > 0 && icon != null) {
                      singleAppInfo.put("title", title);
                      singleAppInfo.put("icon", icon);
                      singleAppInfo.put("tag", intent);
                      singleAppInfo.put("packageName", activityInfo.packageName);
                      appInfos.add(singleAppInfo);
                  }
              }
          }
      } catch (Exception e) {
          e.printStackTrace();
          return;
      }
      MAX_RECENT_TASKS = repeatCount;
  }
 
開發者ID:EdgarNg1024,項目名稱:PreAPP,代碼行數:76,代碼來源:APPList.java


注:本文中的android.content.pm.ActivityInfo.loadIcon方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。