android - 有没有办法让 View 绘制在所有其他 View 之上?

标签 android android-layout android-view

我想知道是否有一种方法可以使 View 绘制在所有其他 View 之上,即使它属于被其他 View 覆盖的 View 组?谢谢。

最佳答案

我找到了解决我的情况的方法,但它仍然会产生不良效果,即在超出其边界的 View 周围绘制一些黑色像素。看来我必须将这些 View 移动到覆盖我需要的区域的父 View 毕竟...无论如何,这就是我所做的以防有人想尝试:

@Override protected void dispatchDraw(Canvas canvas)
{
    Rect clip=new Rect(); getDrawingRect(clip);
    int saveCount=canvas.save(Canvas.CLIP_SAVE_FLAG);
    canvas.clipRect(clip,Region.Op.REPLACE);
    super.dispatchDraw(canvas);
    canvas.restoreToCount(saveCount);
}

该函数属于 View 组,该 View 组包含我想要在其父级强制执行的原始边界之外绘制的 subview 。如果您想对 View 使用不同的边界,则可以将剪辑区域更改为任何内容。

关于android - 有没有办法让 View 绘制在所有其他 View 之上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14081248/

相关文章:

android - 我可以更新后台 Activity 的用户界面吗?

android - 使用 AppCompat 时如何更改 ActionBar 标题字体

Android CalendarView 减慢布局

java - 如何从包含的布局访问按钮代码?

java - 在 Google Maps Android API v2 DEBUG 和 RELEASE API Key 之间切换

android - 将 gradle 设置为 Android O (API 26)

java - 将光标设置为自动搜索 View

android - 在 Android 中以编程方式获取 View 名称

android - 扩展 Android View 类以添加阴影

android - ConstraintLayout 使单元格项适合屏幕视口(viewport)