在我的项目中,我的布局如下:
<FrameLayout> ---------(1)
<SurfaceView>
<FrameLayout> ------(2)
</SurfaceView>
</FrameLayout>
我希望相对于frame-layout (2)
访问frame-layout (1)
的位置/偏移量。
当我尝试FrameLayout1.getLeft()和FrameLayout1.getTop()时,我将其视为零。
获取(left,top)
嵌套元素的正确方法是什么?
谢谢!
更新---&GT;
int dpi = getResources().getDisplayMetrics().densityDpi;
int offset1 = childFrameLayoutPosition[0] - rootFrameLayoutPosition[0]; //x offset
int offset2 = childFrameLayoutPosition[1] - rootFrameLayoutPosition[1]; //y offset
//F1 is child FrameLayout
newBitmap = Bitmap.createBitmap(bitmap,offset1*w, offset2*w,F1.getWidth()*w,F1.getHeight()*w);
执行此操作后,我得到的错误是Width和Height参数应小于位图的宽度和高度。
答案 0 :(得分:0)
int[] rootFrameLayoutPosition = new int[2];
int[] childFrameLayoutPosition = new int[2];
rootFrameLayout.getLocationInWindow(rootFrameLayoutPosition);
childFrameLayout.getLocationInWindow(childFrameLayoutPosition);
int offset = childFrameLayoutPosition[1] - rootFrameLayoutPosition[1];
也许我对x和y感到困惑