如何获得Widget小部件的尺寸

图片描述

如图,我想知道小部件每次调整之后的width和height,该怎么获取呢?

我目前有两个思路:
1.通过RemoteViews或AppWidgetManager里的某个方式获取;

2.获取某个系统参数,可以知道目前Launcher的布局是几乘几的,以及每个格子的width和height。比如目前Launcher是4x4的布局,知道了4x4每个格子个的大小,就能知道每行有多高、多宽,也就知道了小部件每次调整之后的高度和宽度。

那么问题来了,思路是有,但是该如何实现呢?大家帮帮忙 :)

阅读 7.4k
1 个回答
新手上路,请多包涵

public List<Object> getSortedWidgets(int pos) {

    ArrayList<Object> allList = new ArrayList<Object>();
    allList = mWidgetsList.get(mPackageItemInfos.get(pos));
    ArrayList<Object> infoList = new ArrayList<Object>();
    //added by zhanling 2016.02.16
  for (int i = 0; i < allList.size(); i++) {
      Object o = allList.get(i);
      if (o instanceof LauncherAppWidgetProviderInfo) {
          LauncherAppWidgetProviderInfo info = (LauncherAppWidgetProviderInfo) allList.get(i);
          if (info.getSpanX(mLauncher) > profile.numColumns || info.getSpanY(mLauncher) > profile.numRows) {
              continue;
            }
      }
      infoList.add(o);
    }
    return infoList;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题