在我的应用程序中,我正在使用以下代码创建快捷方式。
public void createShortcut(Intent intent) {
Intent.ShortcutIconResource iconResource = intent.getParcelableExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE);
Bitmap icon = intent.getParcelableExtra(Intent.EXTRA_SHORTCUT_ICON);
String shortcutLabel = intent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME);
Intent shortIntent = intent.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT);
if (icon == null) {
if (iconResource != null) {
Resources resources = null;
try {
resources = pm.getResourcesForApplication(iconResource.packageName);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
if (resources != null) {
int id = resources.getIdentifier(iconResource.resourceName, null, null);
if (resources.getDrawable(id) instanceof StateListDrawable) {
Drawable d = (resources.getDrawable(id)).getCurrent();
icon = ((BitmapDrawable) d).getBitmap();
} else
icon = ((BitmapDrawable) resources.getDrawable(id)).getBitmap();
}
}
}
if (shortcutLabel != null && shortIntent != null && icon != null) {
ShortcutSerializableData objectData = AppSharedPref.getInstance().getShortcutSerializableData();
if (objectData == null) {
objectData = new ShortcutSerializableData();
Log.e(TAG, "Serialized data not found");
}
if (objectData.apps == null) {
objectData.apps = new ArrayList();
Log.e(TAG, "Serialized app not found");
}
ShortcutPac pacToAdd = new ShortcutPac();
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
if (x >= (width - 250)) {
y = y + 150;
x = 40;
}
pacToAdd.x = x;
pacToAdd.y = y;
pacToAdd.URI = shortIntent.toUri(0);
pacToAdd.label = shortcutLabel;
pacToAdd.icon = icon;
x = x + 250;
if (HomeActivity.activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
pacToAdd.landscape = true;
else
pacToAdd.landscape = false;
pacToAdd.cacheIcon();
objectData.apps.add(pacToAdd);
pacToAdd.addToHome(this, homeView);
AppSharedPref.getInstance().setShortcutSerializableData(objectData);
}
}
上面的代码正在工作,并按预期方式创建了捷径。我的问题是可以更改快捷图标的大小吗?我的意思是,通过上面的代码,我得到的是图标的大小(例如50x50),然后在7英寸和10英寸的平板电脑上也得到了与快捷图标相同的大小。我想要的是更改平板电脑的快捷图标的大小。我想显示平板电脑的快捷方式图标,比平常要大一些,因为它是为手机创建的。
注意:在Android OS的设置中,如果我选择显示选项,然后从那里可以增加图标和文本的大小。但是,我也想通过编程方式更改快捷图标的大小。可能吗?任何帮助将不胜感激。
答案 0 :(得分:0)
图标显示的大小取决于启动器。幸运的是,您不能强制执行用户想要的其他大小。