This is how I calculate the AppWidget size:

  protected Point getAppWidgetPixelSize (AppWidgetProviderInfo
appWidgetInfo, Point point) {
    int cx = (appWidgetInfo.minWidth  + 2) / 74;
    int cy = (appWidgetInfo.minHeight + 2) / 74;
    float density = getResources().getDisplayMetrics().density;
    switch (getResources().getConfiguration().orientation) {
      case Configuration.ORIENTATION_PORTRAIT:
        point.x = (int)( 80 * cx * density + .5f);
        point.y = (int)(100 * cy * density + .5f);
        return point;
      case Configuration.ORIENTATION_LANDSCAPE:
        point.x = (int)(106 * cx * density + .5f);
        point.y = (int)( 74 * cy * density +.5f);
        return point;
      //case Configuration.ORIENTATION_SQUARE:
      //case Configuration.ORIENTATION_UNDEFINED:
      default:
        throw new IllegalStateException("orientation");
    }
  }



On Jan 17, 5:54 pm, Cleverson <clevers...@gmail.com> wrote:
> Hi,
>
> I'm trying to understand how the home screen calculates how many cells
> will be assigned to a given widget. I came across the following
> sentence in the Android Developer Site:
>
> "Because the Home screen's layout orientation (and thus, the cell
> sizes) can change, as a rule of thumb, you should assume the worst-
> case cell size of 74 pixels for the height and width of a cell.
> However, you must subtract 2 from the final dimension to account for
> any integer rounding errors that occur in the pixel count. To find
> your minimum width and height in density-independent pixels (dp), use
> this formula:
> (number of cells * 74) - 2
> Following this formula, you should use 72 dp for a height of one cell,
> 294 dp and for a width of four cells."
>
> What if I have a mdpi (160dpi) device whose resolution is 480x800?
>
> In a mdpi device, each 1 dip stands for 1 pixel. So, if my widget is
> 72dip x 294dip, it would take 72px x 294px in the mdpi device.
> As far as I cound understand, in the example above, the widget would
> not take 4 cells in this device. The device is 480 pixels wide and 294
> pixels would be covered by 3 cells.
>
> Who's wrong here? The formula or my interpretation?
>
> Thanks in advance!

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to