我试图确定X,Y坐标在Android中是如何工作的。
如果我在RelativeLayout中有一个ImageView,那么X,Y是坐标ImageView的左上边缘还是中心?
此外,最好使用SetX()和SetY()来更改RelativeLayout或Top和Left中ImageView的位置?
<RelativeLayout
android:id="@+id/mainView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="0dp">
<ImageView
android:id="@+id/imageView2"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_centerInParent="false"
android:src="@drawable/img"
android:padding="0dp"
android:background="@android:color/transparent"
android:visibility="visible"
android:layout_centerVertical="false" />
答案 0 :(得分:0)
setX()
,setY()
,setLeft()
,setRight()
是Android View类上的方法,因此由ImageView继承。
根据setX的Android文档,
void setX (float x)
设置此视图的可视x位置(以像素为单位)。这相当于将translationX属性设置为传入的x值与当前left属性之间的差值。
这意味着ImageView(或更确切地说是View)将被添加到其父级(ViewGroup),其偏移量为X的偏移位置。
X和Y属性始终从顶部和左侧计算。
要将ImageView定位在relativelayout中,最好使用
layout_alignParentTop
layout_alignParentLeft
layout_alignParentRight
layout_alignParentBottom
layout_centerInParent
加上像
这样的保证金选项layout_marginLeft="10dp"
layout_marginRight="10dp"
layout_marginTop="10dp"
layout_marginBottom="10dp"
答案 1 :(得分:-1)
您需要使用布局参数设置边距:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(left, top, right, bottom);
Button button1;
button1.setLayoutParams(params);
此外,您可以添加一个视图如何依赖另一个视图的规则
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);