Android:如何以像素为单位获取小部件的高度?

时间:2017-02-23 15:08:33

标签: android widget android-appwidget appwidgetprovider

我希望在AppWidgetProvider类中获得小部件的精确高度(以像素为单位)。观察后我可以看到2个设备上1个块的高度不同,尽管它们都是xxxhdpi。所以我希望得到像素的高度来进行正确的计算。我不是指minHeight,在我的情况下,它的像素为40dp。

2 个答案:

答案 0 :(得分:-1)

在我看来,view.getHeight会返回像素值。要进行正确的计算,dp而非px是有用的

答案 1 :(得分:-2)

Android中的每个视图(小部件也是视图)都有两个公共方法:getWidth()和getHeight(),它们将在屏幕上返回它们的实际大小。可以在大小,填充和边距下找到更多详细信息。 View API Reference

编辑:基于此:https://stackoverflow.com/posts/42419929/edit您可以使用以下方式设置布局:

RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.example_appwidget);
appWidgetManager.updateAppWidget(mAppWidgetId, views);

在RemoteViews文档中,https://developer.android.com/reference/android/widget/RemoteViews.html您可以通过views.getLayoutId()获取根布局的ID。在我看来,您应该能够使用该ID来查找布局,然后继续使用的getHeight。