динамическое изменение положения ImageView в Android - PullRequest
2 голосов
/ 07 июля 2011

все

Мне нужно динамически изменить положение ImageView и IAM, используя следующий код

int x=100,y=100;
RelativeLayout.LayoutParams mparam = new RelativeLayout.LayoutParams((int)(LayoutParams.FILL_PARENT),(int)(LayoutParams.FILL_PARENT));
    mparam.topMargin=x;
    mparam.leftMargin=y;
    ball.setLayoutParams(mparam);
    x+=100;
    y+=100;

, но я не получил никаких изменений.

Это так?возможный?и как?

Ответы [ 2 ]

4 голосов
/ 07 июля 2011

Вы меняете маржу, но не ее позицию, и, похоже, это не очень хорошее решение. Попробуйте использовать метод View.layout(int, int, int, int) Документация говорит:

public void layout (int l, int t, int r, int b)

Since: API Level 1
Assign a size and position to a view and all of its descendants
This is the second phase of the layout mechanism. (The first is measuring). 
In this phase, each parent calls layout on all of its children to position them. 
This is typically done using the child measurements that were stored in 
the measure pass(). Derived classes should not override this method. Derived 
classes with children should override onLayout. In that method, they should call 
layout on each of their children.

Parameters

l   Left position, relative to parent
t   Top position, relative to parent
r   Right position, relative to parent
b   Bottom position, relative to parent
1 голос
/ 07 июля 2011

Вы можете вызвать setPadding в вашем представлении.Итак, в вашем коде (который, кстати, вы должны поместить в блок кода!), Просто добавьте вызов к этому методу:

int x=100,y=100; 
LayoutParams mparam = new LayoutParams((int)(LayoutParams.FILL_PARENT),(int) (LayoutParams.FILL_PARENT));
ball.setLayoutParams(mparam); 
ball.setPadding(x,y,0,0);

x+=100; y+=100;
ball.setPadding(x,y,0,0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...