在我的 android 桌面上创建快捷方式时,我遇到了一些问题。

首先,我有一个 72x72 的图标,我将它从我的 SD 卡加载到一个位图对象中。

使用该位图对象,我将其设置为我的图标资源。

我遇到的问题是当我设置它时,快捷方式上的图像偏离中心并被切断。从屏幕指标我得到的大小为 72x72,不确定是什么交易。

代码:

Bitmap theBitmap = BitmapFactory.decodeFile("/sdcard/icon.png");
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, theBitmap)

我试过调整它的大小,并使用 Canvas 、可绘制和另一个位图让它工作,但是当重新启动手机时,它会恢复到小尺寸。

使用与可绘制资源完全相同的图标使它看起来很完美,但它不是动态的:
Parcelable iconResource = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);

使用带有 2.1 的三星 Epic 4g

最佳答案

我有一个类似的问题。我查看了 Launcher 源代码,发现如果初始位图大小太小,会导致图标无法正确显示的错误。

首先将位图缩放到 128x128:

Bitmap scaledBitmap = Bitmap.createScaledBitmap(theBitmap, 128, 128, true);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, scaledBitmap);

它会修复它。

关于android - intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bmp) 图像偏离中心,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4802457/

10-11 01:39