在 RemoteViews 中获取 ImageView 的大小
Get Size of ImageView in RemoteViews
我正在编写一个 Android AppWidget。小部件的布局包含一个 LinearLayout 以及其中的一些 ImageView。在 AppWidgetProvider 的 OnUpdate 方法中,我首先为布局创建了一个 RemoteViews ...
var rv = new RemoteViews(context.PackageName, Resource.Layout.WidgetLayout);
...并且,使用它,我可以为每个子 ImageView 设置位图。
但是,我真正想做的是在布局完成后获取 ImageView 的实际大小,以便我可以在其中绘制精确大小的图像(可能通过位图)。我看不到通过 RemoteViews 获取 ImageView 大小的方法,也看不到任何获取 RemoteViews 项目的底层 ImageView 的方法。
我能做到吗?是在OnUpdate()中完成的吗?如果是这样,如何?如果没有,我应该在哪里做?
提前致谢。
Can I even do this?
没有。 RemoteViews
定义的 UI 的呈现由单独的应用程序(主屏幕)在单独的进程中处理。您无法从其他进程获取 Java 个对象,尤其是 Views
。
您可以获得小部件的大小 - 小部件的近似大小。
在布局中,您可以使用 "weights" - 如果您知道小部件的大小和图像的权重 - 您可以近似计算图像的大小。
我正在使用这种方法来制作适当的位图。
问题之一 - 不同的设备位于不同的地方。
我的一张位图具有下一个权重 - 宽度为 0.6,高度为 0.15。
SetTitleButton( context, views, (int) (w*0.6), (int)(h*0.15*coefficient));
其中系数试图补偿不同 "lie" 并且用户可以修改它以适应...
w 和 h - 是小部件的大小。
Bundle awo = appWidgetManager.getAppWidgetOptions( appWidgetId);
int h=awo.getInt("appWidgetMaxHeight");
int w=awo.getInt("appWidgetMaxWidth");
我正在编写一个 Android AppWidget。小部件的布局包含一个 LinearLayout 以及其中的一些 ImageView。在 AppWidgetProvider 的 OnUpdate 方法中,我首先为布局创建了一个 RemoteViews ...
var rv = new RemoteViews(context.PackageName, Resource.Layout.WidgetLayout);
...并且,使用它,我可以为每个子 ImageView 设置位图。
但是,我真正想做的是在布局完成后获取 ImageView 的实际大小,以便我可以在其中绘制精确大小的图像(可能通过位图)。我看不到通过 RemoteViews 获取 ImageView 大小的方法,也看不到任何获取 RemoteViews 项目的底层 ImageView 的方法。
我能做到吗?是在OnUpdate()中完成的吗?如果是这样,如何?如果没有,我应该在哪里做?
提前致谢。
Can I even do this?
没有。 RemoteViews
定义的 UI 的呈现由单独的应用程序(主屏幕)在单独的进程中处理。您无法从其他进程获取 Java 个对象,尤其是 Views
。
您可以获得小部件的大小 - 小部件的近似大小。 在布局中,您可以使用 "weights" - 如果您知道小部件的大小和图像的权重 - 您可以近似计算图像的大小。 我正在使用这种方法来制作适当的位图。 问题之一 - 不同的设备位于不同的地方。 我的一张位图具有下一个权重 - 宽度为 0.6,高度为 0.15。
SetTitleButton( context, views, (int) (w*0.6), (int)(h*0.15*coefficient));
其中系数试图补偿不同 "lie" 并且用户可以修改它以适应...
w 和 h - 是小部件的大小。
Bundle awo = appWidgetManager.getAppWidgetOptions( appWidgetId);
int h=awo.getInt("appWidgetMaxHeight");
int w=awo.getInt("appWidgetMaxWidth");