How to place textview using x,y position

2020-08-20 02:58发布

问题:

I am new to android,Can anyone help me?.I need to show the textview values and button and imageview using x,y position.how its possible.My coding.

  <?xml version="1.0" encoding="utf-8"?>
  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   android:background="@drawable/levelbg" >

<Button
    android:id="@+id/level1"
    android:layout_width="560dp"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="71dp"
    android:background="@drawable/levelbox"
   />

<TextView
    android:id="@+id/levelno1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="43dp"
    android:background="@drawable/levelno" />

<TextView
    android:id="@+id/lastshoot1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/level1"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="18dp"
    android:layout_marginLeft="85dp"
    android:text="134"
    android:textSize="20sp" />

<TextView
    android:id="@+id/bestshoot1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/lastshoot1"
    android:layout_alignBottom="@+id/lastshoot1"
    android:layout_marginLeft="50dp"
    android:layout_toRightOf="@+id/lastshoot1"
    android:text="123"
    android:textSize="20sp" />

<ImageView
    android:id="@+id/levelonestar1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/bestshoot1"
    android:layout_marginLeft="17dp"
    android:layout_marginBottom="10dp"
    android:layout_toRightOf="@+id/bestshoot1"
    android:src="@drawable/star1" />

<ImageView
    android:id="@+id/levelonestar2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/levelonestar1"
    android:layout_toRightOf="@+id/levelonestar1"
    android:src="@drawable/star1" />

<ImageView
    android:id="@+id/levelonestar3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/levelonestar2"
    android:layout_toRightOf="@+id/levelonestar2"
    android:layout_marginRight="2dp"
    android:src="@drawable/star1" />

I need this via programmatically up to 50 times it should be shown.(50 buttons).Can any one suggest me the alternative way,Thanks for advance.

回答1:

Android >= Honeycomb (self-explaining)

view.setX(x);
view.setY(y);

Android < Honeycomb Instead of directly setting it to the position you will tell "set it x pixels away from the left/top/right/bottom border".

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp.setMargins(x, y, 0, 0);

view.setLayoutParams(lp);