/ / zobrazenie polohy v runtime - relatívne, Android, relatívne

pozícia pozície v relativnom režime runtime - android, relativelayout

chcem pridať zobrazenie do relatívneho zobrazenia. toto zobrazenie sa musí pridať na určené miesto.

mám toto:

    int x = ...;
int y = ...;
button.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int x = (int) event.getRawX();
int y = (int) event.getRawY();
v.layout(x, y, x + v.getWidth(), y + v.getHeight());
return true;
}
});
relativelayout.addView(button);
button.layout(x, y, x + button.getWidth(), y + button.getHeight());

ontouchlistener funguje skvele .. výhľad zostáva s prstom. počiatočná pozícia je však vždy 0, 0 ... nezáleží na tom, čo je moje xay.

niekto idee?

odpovede:

6 pre odpoveď č. 1

mám riešenie.

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
lp.leftMargin = x;
lp.topMargin = y;
relativelayout.addView(tmpTextButtonView, lp);

nie je skvelé používať rezervu na polohovanie plávajúcich pohľadov. funguje to však pre mňa.


1 pre odpoveď č. 2

Možno budete chcieť skúsiť nastaviť polohu tlačidla skôr, ako ho pridáte do nadradeného zobrazenia. Vymeňte teda tieto dva riadky:

relativelayout.addView(button);
button.layout(x, y, x + button.getWidth(), y + button.getHeight());

byť takto:

button.layout(x, y, x + button.getWidth(), y + button.getHeight());
relativelayout.addView(button);