i_a*_*orf 1 android imageview image-clipping android-layout
如果我有一个包含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>
Run Code Online (Sandbox Code Playgroud)
我想象类似的东西,如果没有人被裁剪,它将返回一个索引或0。函数调用的语义并不是很重要……我只需要某种方法就可以知道是否存在裁剪,如果有的话,它是谁?
int whichImageIsClipped(LinearLayout root) { ... }
Run Code Online (Sandbox Code Playgroud)
这可能有点麻烦,但是您可以在每个孩子上尝试getGlobalVisibleRect(android.graphics.Rect,android.graphics.Point)。如果返回false,则表明它完全不可见。如果返回true,则需要将返回的Rect与图像的预期大小进行比较。
可以满足您的需求吗?
这是代码,以防万一有人需要它:
public static Boolean isViewClipped(View view) {
Rect rect = new Rect();
Boolean completelyObscured = !view.getGlobalVisibleRect(rect);
return completelyObscured || rect.width() < view.getWidth();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1571 次 |
| 最近记录: |