在 Android 上显示点击叠加层,例如基线网格
Display click-through overlay on Android, e.g. baseline grid
我想看看我的应用程序是否符合 Material 设计 guidelines regarding metrics 并根据需要进行调整。为此,我希望在不拦截触摸事件的情况下在整个 window 上绘制一个 8dp 方形网格或 4dp 基线网格,这样我就可以像往常一样点击和滚动(想想开发中的 "Show layout bounds" 模式选项)。它应该看起来像这样:
问题:
- 如何将这样的视图放在所有内容的顶部并使其成为 "click-through"?
- 或者也许已经有实现此目的的工具/库/片段? UPD这个已经回答了,谢谢!出于好奇,问题 1 仍然悬而未决
注意:我与应用程序的作者没有任何关系,这只是我在自己的开发中广泛使用的内容。
UPD2:@john 引用的应用程序实际上有 their sources open. 看起来这个代码片段做到了。就这么简单。
final WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.TRANSLUCENT
);
final WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(myOverlayView, lp);
我想看看我的应用程序是否符合 Material 设计 guidelines regarding metrics 并根据需要进行调整。为此,我希望在不拦截触摸事件的情况下在整个 window 上绘制一个 8dp 方形网格或 4dp 基线网格,这样我就可以像往常一样点击和滚动(想想开发中的 "Show layout bounds" 模式选项)。它应该看起来像这样:
问题:
- 如何将这样的视图放在所有内容的顶部并使其成为 "click-through"?
- 或者也许已经有实现此目的的工具/库/片段? UPD这个已经回答了,谢谢!出于好奇,问题 1 仍然悬而未决
注意:我与应用程序的作者没有任何关系,这只是我在自己的开发中广泛使用的内容。
UPD2:@john 引用的应用程序实际上有 their sources open. 看起来这个代码片段做到了。就这么简单。
final WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.TRANSLUCENT
);
final WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.addView(myOverlayView, lp);