Android小部件的屏幕大小
我尝试使用以下代码从小部件获取屏幕大小:Android小部件的屏幕大小,android,android-widget,size,screen,Android,Android Widget,Size,Screen,我尝试使用以下代码从小部件获取屏幕大小: WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width = size.x; int height = size.y; 我想它应该给我以像素为单位的屏
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
我想它应该给我以像素为单位的屏幕大小
我试图在Nexus 7平板电脑(1280 x 800)和LGE610(320 x 480)上获得尺寸
第一个是482像素,第二个是480像素,这怎么可能呢?在Galaxy Nexus(Maguro)上,我得到的是526
有没有可能或者我做错了什么
获取显示的大小(以像素为单位)
请注意,此值不应用于计算布局,因为
设备通常具有屏幕装饰(如状态栏)
沿显示屏边缘,减少应用量
此处返回的大小的可用空间。布局应该改为
使用窗口大小
根据显示器的当前旋转调整大小
此方法返回的大小不一定表示
显示器的实际原始大小(本机分辨率)。返回的大小
可进行调整,以排除以下某些系统装饰元素:
始终可见。还可以对其进行缩放以提供与的兼容性
最初设计用于较小显示器的较旧应用程序
换句话说,根据标题栏等的存在,您从getSize获得的内容是不一致的。警告买主
下面是更深入的讨论:
您可以在dp中获得小部件大小,但我不知道如何调整小部件的高度和宽度
public class MyProvider extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
for (int i : appWidgetIds) {
updateWidget(context, appWidgetManager, i);
AppWidgetProviderInfo info = appWidgetManager.getAppWidgetInfo(i);
int highResize = info.minResizeHeight;
int weighResize = info.minResizeWidth;
int high = info.minHeight;
int weigh = info.minWidth;
}
}
}