如何以编程方式在Android中增加快捷图标的大小

时间:2019-05-01 07:45:27

标签: android

在我的应用程序中,我正在使用以下代码创建快捷方式。

 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的设置中,如果我选择显示选项,然后从那里可以增加图标和文本的大小。但是,我也想通过编程方式更改快捷图标的大小。可能吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

图标显示的大小取决于启动器。幸运的是,您不能强制执行用户想要的其他大小。