android - intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bmp) 图像偏离中心

标签 android

我在 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);

使用 Samsung Epic 4g w/2.1

最佳答案

我遇到了类似的问题。我查看了 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/

相关文章:

android - 在 fragment android中创建listview

android - 流式音频在 Android 中不起作用

java - 拍照并点击确定后相机崩溃

android - 当在 android studio 中使用 kotlin 单击 CardView 时,如何重定向到应用程序?

android - 在 android firebase auth 中注销后如何强制谷歌帐户选择器

java - Android JSONObject 说 "no value for name",而 "name"项肯定存在

android - 如何防止 Android 通知覆盖自己?

android - 无法找到 javax/sql/XAConnection 的字节码

java - 来自 MS Exchange OWA 的 HTML 正文中的响应 'Bad request'

java - 从我的 Android 应用程序 zxing 向我的在线 MySQL 数据库发送数据