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