我正在使用setX和setY以便以编程方式移动视图。我想增加X协调并执行以下操作: v.setX(newX + 10) 但它不起作用。 这是我的XML - 我想更新图像视图“imgBall0”的coorsinations
<LinearLayout
android:id="@+id/GoolotPlayer1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/HolesPlayer1"
android:layout_centerHorizontal="true" >
<TextView
android:id="@+id/tvGoolot0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="50dp"
android:text=" 0" />
<TextView
android:id="@+id/tvGoolot1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="50dp"
android:text=" 0" />
<TextView
android:id="@+id/tvGoolot2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="50dp"
android:text=" 0" />
<TextView
android:id="@+id/tvGoolot3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="50dp"
android:text=" 0" />
<TextView
android:id="@+id/tvGoolot4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="50dp"
android:text=" 0" />
<TextView
android:id="@+id/tvGoolot5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="0dp"
android:text=" 0" />
</LinearLayout>
<ImageView
android:id="@+id/imgBall4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/GoolotPlayer1"
android:layout_alignLeft="@+id/GoolotPlayer1"
android:layout_marginLeft="108dp"
android:background="@android:color/transparent"
android:src="@drawable/goola2" />
<ImageView
android:id="@+id/imgBall1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@android:color/transparent"
android:src="@drawable/goola0" />
<ImageView
android:id="@+id/imgBall0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imgBall1"
android:layout_marginLeft="38dp"
android:layout_toRightOf="@+id/imgBall3"
android:background="@android:color/transparent"
android:src="@drawable/goola0" />
<ImageView
android:id="@+id/imgBall2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/imgBall4"
android:layout_alignRight="@+id/GoolotPlayer1"
android:layout_marginRight="45dp"
android:background="@android:color/transparent"
android:src="@drawable/goola2" />
<LinearLayout
android:id="@+id/HolesPlayer1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tvGoolot6"
android:layout_centerHorizontal="true" >
<ImageButton
android:id="@+id/imgBtn0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:src="@drawable/hole0" />
<ImageButton
android:id="@+id/imgBtn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:src="@drawable/hole0" />
<ImageButton
android:id="@+id/imgBtn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:src="@drawable/hole0" />
<ImageButton
android:id="@+id/imgBtn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:src="@drawable/hole0" />
<ImageButton
android:id="@+id/imgBtn4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:src="@drawable/hole0" />
<ImageButton
android:id="@+id/imgBtn5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:src="@drawable/hole0" />
</LinearLayout>
<ImageButton
android:id="@+id/imgBtn13"
android:layout_width="60dp"
android:layout_height="170dp"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/HolesPlayer2"
android:background="@android:color/transparent"
android:src="@drawable/home0" />
<LinearLayout
android:id="@+id/HolesPlayer2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imgBtn13"
android:layout_toLeftOf="@+id/imgBtn6" >
<ImageButton
android:id="@+id/imgBtn7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:src="@drawable/hole0" />
<ImageButton
android:id="@+id/imgBtn8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:src="@drawable/hole0" />
<ImageButton
android:id="@+id/imgBtn9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:src="@drawable/hole0" />
<ImageButton
android:id="@+id/imgBtn10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:src="@drawable/hole0" />
<ImageButton
android:id="@+id/imgBtn11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:src="@drawable/hole0" />
<ImageButton
android:id="@+id/imgBtn12"
style="@drawable/hole01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:background="@android:color/transparent"
android:src="@drawable/hole0" />
</LinearLayout>
<TextView
android:id="@+id/tvGoolot6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imgBtn6"
android:layout_below="@+id/imgBtn6"
android:layout_marginLeft="22dp"
android:text=" 0" />
<TextView
android:id="@+id/tvGoolot13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/HolesPlayer1"
android:layout_alignLeft="@+id/imgBtn13"
android:layout_marginLeft="20dp"
android:background="@android:color/transparent"
android:text=" 0" />
<LinearLayout
android:id="@+id/GoolotPlayer2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/imgBtn13"
android:layout_toRightOf="@+id/imgBtn13" >
<TextView
android:id="@+id/tvGoolot12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="50dp"
android:text=" 0" />
<TextView
android:id="@+id/tvGoolot11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="50dp"
android:text=" 0" />
<TextView
android:id="@+id/tvGoolot10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="50dp"
android:text=" 0" />
<TextView
android:id="@+id/tvGoolot9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="50dp"
android:text=" 0" />
<TextView
android:id="@+id/tvGoolot8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="50dp"
android:text=" 0" />
<TextView
android:id="@+id/tvGoolot7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="0dp"
android:text=" 0" />
</LinearLayout>
<ImageView
android:id="@+id/imgBall3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imgBall1"
android:layout_alignLeft="@+id/GoolotPlayer1"
android:layout_marginLeft="54dp"
android:background="@android:color/transparent"
android:src="@drawable/goola2" />
<ImageButton
android:id="@+id/imgBtn6"
android:layout_width="60dp"
android:layout_height="170dp"
android:layout_below="@+id/GoolotPlayer2"
android:layout_toRightOf="@+id/HolesPlayer1"
android:background="@android:color/transparent"
android:src="@drawable/home0" />
<TextView
android:id="@+id/tvWhoseTurn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/GoolotPlayer2"
android:layout_alignLeft="@+id/imgBall1"
android:text="TextView" />
这是我尝试的方法 - 当点击一个imageButton时,它应该将“imgBall0”的协调更新到被点击的视图的位置(它假设 on 它)
@Override
public void onClick(View v)
{
int[] location = new int[2];
v.getLocationOnScreen(location);
float startX = location[0];
float startY = location[1];
tvWhoseTurn.setText(startX+" "+startY);
littleBalls[0].setX(startX);
littleBalls[0].setY(startY- HolesPlayer2.getHeight()+10); //"+10" doesn't work
littleBalls[0].bringToFront();
}
有办法吗? 在此先感谢,我很乐意快速回答
答案 0 :(得分:0)
使用setTranslateY()
即api 11+或您可以使用Animation
api,或者您可以使用LayoutParam
s。你听说过Top,Left,Right,Bottom吗?是的你可以分别改变它们并让它们移动。你需要的东西是Thread
和atomic int variable
,while loop
,它会一直运行直到你到达你的位置和一个小数学。
如果您发布了我会查看的代码并为您编写代码 - 但我们都会解决问题吗?
类似这样的事情
boolean right = true;
private Runnable trans = new Runnable() {
@Override
public void run() {
if(right){
layout(getLeft()+translate, getTop(), getRight()+translate, getBottom());
}else {
layout(getLeft()-translate, getTop(), getRight()-translate, getBottom());
}
invalidate();// this line is needed
}
};
然后
new Thread(new Runnable() {
@Override
public void run() {
while(true) //need to use a boolean so you can stop it later
/* add a thread.sleep() to pause your loop for some millie seconds*/
handler.post(trans);// handler is a Handler object
它将动画..
希望它有所帮助.. 抱怨欢呼中的懒惰代码