在Android中,我正在创建自定义布局。它包含一个我需要定位,旋转,然后精确测量的视图。
如果我有一个10x10像素的视图,我向右移动10像素,向下移动10像素,然后向下旋转45度,视图将测量自身的宽度以及精确定位的位置?
jQuery.ajax({
type: "POST",
url: "http://localhost:5832/api/Cage",
data: JSON.stringify({ ssqUserId: 176650, token: 'b2fwfybdeec177hespp7orvvzvf0rv', ssqEventId: 1, baitUsed: '1', baitPlaced: '12/12/2016', cageFell: true, clickOnCageToClose: '05/01/2016', successfulOrNot: false })
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(data);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
它仍会报告10px的宽度,还是会将其轮换考虑在内? x和y坐标是否与旋转的角对齐,还是保持固定?
答案 0 :(得分:3)
rotation
,translationX
,translationY
,translationZ
,scaleX
,scaleY
- 这些是 Canvas 属性。这意味着您可以告诉Android在哪里绘制视图 后,相对于视图的x
和y
位置进行了测量和布局。这些属性不会影响默认测量例程(除非您在自定义视图中覆盖onMeasure
并将其考虑在内,但我强烈建议您不要这样做)。因此,更改任何这些属性都不会影响视图测量
但要回答您原来的问题 - 是的,它会报告 编辑正如Dave指出的那样,我在布局过程中覆盖x
,y
- 是布局属性。这意味着此视图的父级决定相对于自身的位置,因此如果在调用onLayout
之前设置这些值,则父级将覆盖这些值。如果您在 x
之后覆盖y
和onLayout
- 您可以在其父级中更改此视图的位置。但是如果你追求这种效果 - 我宁愿使用translationX
和translationY
属性,因为下一次onLayout
来电会再次重置x
和y
。< / p>
10px
作为其宽度。上述属性都不会实际影响视图的报告宽度或高度x
和y
的原始声明并不正确。设置x
和y
属性将在内部设置translationX
和translationY
,因此更新这些属性实际上与更新翻译相同