本文整理汇总了Java中android.content.pm.PackageManager.getResourcesForActivity方法的典型用法代码示例。如果您正苦于以下问题:Java PackageManager.getResourcesForActivity方法的具体用法?Java PackageManager.getResourcesForActivity怎么用?Java PackageManager.getResourcesForActivity使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.content.pm.PackageManager
的用法示例。
在下文中一共展示了PackageManager.getResourcesForActivity方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: replaceTargetDrawablesIfPresent
import android.content.pm.PackageManager; //导入方法依赖的package包/类
/**
* Searches the given package for a resource to use to replace the Drawable on the
* target with the given resource id
* @param component of the .apk that contains the resource
* @param name of the metadata in the .apk
* @param existingResId the resource id of the target to search for
* @return true if found in the given package and replaced at least one target Drawables
*/
public boolean replaceTargetDrawablesIfPresent(ComponentName component, String name,
int existingResId) {
if (existingResId == 0) return false;
boolean replaced = false;
if (component != null) {
try {
PackageManager packageManager = getContext().getPackageManager();
// Look for the search icon specified in the activity meta-data
Bundle metaData = packageManager.getActivityInfo(
component, PackageManager.GET_META_DATA).metaData;
if (metaData != null) {
int iconResId = metaData.getInt(name);
if (iconResId != 0) {
Resources res = packageManager.getResourcesForActivity(component);
replaced = replaceTargetDrawables(res, existingResId, iconResId);
}
}
} catch (NameNotFoundException e) {
Log.w(THIS_FILE, "Failed to swap drawable; "
+ component.flattenToShortString() + " not found", e);
} catch (Resources.NotFoundException nfe) {
Log.w(THIS_FILE, "Failed to swap drawable from "
+ component.flattenToShortString(), nfe);
}
}
if (!replaced) {
// Restore the original drawable
replaceTargetDrawables(getContext().getResources(), existingResId, existingResId);
}
return replaced;
}
示例2: get
import android.content.pm.PackageManager; //导入方法依赖的package包/类
@Nullable
@ColorInt
public static Integer get(Context context, ComponentName componentName) {
PackageManager packageManager = context.getPackageManager();
ActivityInfo activityInfo = null;
PackageInfo packageInfo = null;
Resources resources = null, activityResources = null;
try {
packageInfo = packageManager.getPackageInfo(componentName.getPackageName(), PackageManager.GET_META_DATA);
resources = packageManager.getResourcesForApplication(packageInfo.applicationInfo);
activityInfo = packageManager.getActivityInfo(componentName, 0);
activityResources = packageManager.getResourcesForActivity(componentName);
} catch (PackageManager.NameNotFoundException ignored) {
}
if (packageInfo != null && resources != null) {
if (activityInfo != null && activityResources != null) {
List<Integer> activityStatusBarColors = getResourceColors(activityInfo.packageName, resources, activityInfo.theme);
if (activityStatusBarColors.size() > 0) {
return activityStatusBarColors.get(0);
}
}
List<Integer> statusBarColors = getResourceColors(packageInfo.packageName, resources, packageInfo.applicationInfo.theme);
if (statusBarColors.size() > 0) {
return statusBarColors.get(0);
}
if (packageInfo.activities != null) {
for (ActivityInfo otherActivityInfo : packageInfo.activities) {
List<Integer> otherStatusBarColors = getResourceColors(packageInfo.packageName, resources, otherActivityInfo.theme);
if (otherStatusBarColors.size() > 0) {
return otherStatusBarColors.get(0);
}
}
}
}
return null;
}