Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android小部件的屏幕大小_Android_Android Widget_Size_Screen - Fatal编程技术网

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;
        }
    }
}