我怎么知道当图像被剪切?(How do I tell when an image is clippe

2019-09-30 02:45发布

如果我有一个包含ImageViews一个的LinearLayout,我怎么会写代码来告诉它,如果有的话,是由屏幕的边缘修剪?

<LinearLayout android:id="@+id/imagecontainer"
              android:orientation="horizontal"
              android:layoutHeight="wrap_content"
              android:layoutWidth="fill_parent">

    <ImageView android:id="@+id/image1" .../>
    <ImageView android:id="@+id/image2" .../>

     ...

    <ImageView android:id="@+id/imageN" .../>

</LinearLayout>

我想类似的东西,如果没有人修剪这将返回一个索引或0。 函数调用的语义并不重要......我只是需要一些方法来判断是否有裁剪,如果是,是谁呢?

int whichImageIsClipped(LinearLayout root) { ... }

Answer 1:

这可能是一个延伸,但你可以尝试getGlobalVisibleRect(android.graphics.Rect,android.graphics.Point)每个孩子的。 如果返回false,你知道这是完全脱离的观点。 如果返回true,则需要返回的矩形与图像的预期大小进行比较。

请问您需要什么样的工作?

下面是代码,如果有人需要它:

public static Boolean isViewClipped(View view) {
  Rect rect = new Rect();
  Boolean completelyObscured = !view.getGlobalVisibleRect(rect);
  return completelyObscured || rect.width() < view.getWidth();
}


文章来源: How do I tell when an image is clipped?