首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android应用程序小部件大小问题

Android应用程序小部件大小问题
EN

Stack Overflow用户
提问于 2013-03-01 00:55:52
回答 1查看 1.9K关注 0票数 4

我在获取我正在设计的主屏幕小部件的大小时遇到了一些问题。我已经阅读了sdk文档并进行了一些搜索,但我没有找到任何有用的东西。无论如何,我正在使用widget提供者的onAppWidgetOptionsChanged方法来获取API16以上设备上的widget大小,但它在某些设备上报告错误。它在Nexus和Transformer Prime上运行正常,但它在我的S3上给出的值比我从屏幕截图上测得的值要小。我已经说明了这样一个事实:它是以dp而不是像素为单位报告的。我猜三星的launcher增加了某种类型的利润,但我找不到任何关联。例如,当我使用2x2小工具时,onAppWidgetOptionsChanged报告154dp (~293px)宽和193dp (~355px)高,但我在Photoshop中测量了~340px x 420px。这只是一个三星的问题,还是我将在许多非普通平台上面临这个问题。代码非常简单,但我只是为了以防万一。

代码语言:javascript
运行
复制
@Override
public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) {
    int minWidth = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH);
    int maxWidth = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH);
    int minHeight = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT);
    int maxHeight = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT);

    Log.i("WidgetProvider","Widget size changed");
    Log.i("WidgetProvider","minWidth: " + minWidth);
    Log.i("WidgetProvider","minHeight: " + minHeight);
    Log.i("WidgetProvider","maxWidth: " + maxWidth);
    Log.i("WidgetProvider","maxHeight: " + maxHeight);
}

我正在使用报告的大小在我的小部件更新服务中生成位图。我需要使用自定义位图,因为我想为我的小部件使用自定义字体和背景。在API16以下的设备上,我只是将位图设置为widget info xml中定义的minWidth和minHeight。在一些设备上,这会在小部件周围留下比我希望的更多的填充,但图像是不失真的。据我所知,在早期的设备中没有办法获得小部件的大小。此外,我不相信自定义字体可以在应用程序小部件的TextView中使用。这是正确的吗?我试过在图片上使用fitXY,但它在某些设备上看起来很糟糕。有没有更可预测的方法在小部件上实现自定义背景和自定义字体?任何建议都将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-03-02 13:52:40

看起来我遇到了samr问题。Galaxy Note上的小部件4*4。onAppWidgetOptionsChanged返回426*384最大尺寸,但如果你在屏幕上看到高度大于宽度...

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15141220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档