Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
verylazy
Заблокирован
#1

Расставить картинку по координатам - Программирование Android

10.12.2013, 13:24. Просмотров 772. Ответов 15
Метки нет (Все метки)

Всем привет.
Парни, не могу понять как быть. У меня есть лаяут...сложный лаяут по которому на экране выставляются картинки.
Я хочу первоначально расставлять картинки по нему, а потом таскать их пальчиком по экрану и оставлять в произвольной позиции.

Другими словами, мне лаяут нужен только для того, что бы при первом запуске картинки выставились как полагается на разных размерах экрана и dpi.

Как дальше? Я че-то не въезжаю в логику. Первое что пришло в голову это "обнулить" этот лаяут. Но перед этим мне как-то нужно вытянуть координаты картинок на экране в абсолютных координатах. Не получается.

Я делаю так - один слушатель на все картинки.
Java
1
2
3
4
5
6
7
8
9
    private class MyTouchListener implements OnTouchListener {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            Rect r = new Rect();
            c.getLocalVisibleRect(r);
            System.out.println("tag =" + c.tag + "     " + r.top + "   " + r.left + "    " + r.width() + "     " + r.height());
            return false;
        }
    }
Так же пробовал вытягивать координаты с помощью getLocationInWindow и getLocationOnScreen - они все возвращают относительные координаты.

Если я мутно написал, но у вас есть желание подсказать, так и напишите - объяснил непонятно, я перефразирую.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 13:24     Расставить картинку по координатам
Посмотрите здесь:

Получение адреса, по координатам - Программирование Android
Здравствуйте. Заранее извиняюсь, за возможное непонимание очевидных вещей, я с явой, до прошлой недели был знаком только шапочно, но надо,...

Как кликнуть по координатам? - Программирование Android
Как кликнуть по заданным координатам на экране программно???

Рисуем треугольник по координатам - Программирование Android
Мужики вопрос очередной по канвас! Откуда он берет первую или третью координату 0? Нужно чтобы по нажатию на экран ставило скажем точку и...

Обработка нажатия по координатам - Программирование Android
Есть ImageView (.png). Нужно обработать нажатия через OnTouchListener в 3-х местах этого png файла. Область каждого нажатия - круг...

Рассчитать расстояние по GPS координатам - Программирование Android
Может кто подскажет или даст ссылку на мой вопрос. Нужно что бы программа высчитывала расстояние от сохраненных координат(сохранить по...

Отобразить местоположение на карте по координатам - Программирование Android
Взял из книжки такой код для отображения местоположения на карте по заданным координатам (например, взял координаты Москвы): ...

Список городов и определение местонахождения по координатам - Программирование Android
Всем доброго времени суток! Подскажите, где можно найти акутуальный на текущий день, обновляемый список городов России и стран СНГ и как...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
10.12.2013, 15:41     Расставить картинку по координатам #2
Цитата Сообщение от verylazy Посмотреть сообщение
Так же пробовал вытягивать координаты с помощью getLocationInWindow и getLocationOnScreen - они все возвращают относительные координаты.
Абсолютные возвращают. View v
Java
1
2
3
4
int[] loc = {0, 0};
v.getLocationOnScreen(loc);
int x = loc[0];
int y = loc[1];
verylazy
Заблокирован
10.12.2013, 16:06  [ТС]     Расставить картинку по координатам #3
точно спасибо большое, я что-то буксанул...пробовал вчера уже ночью получать координаты из getLocationOnScreen, но видимо уже был не в адеквате
verylazy
Заблокирован
16.12.2013, 12:59  [ТС]     Расставить картинку по координатам #4
тут выяснились нюансы - если спрашивать координаты вьюшки в методе onTouch то все работает
если же этот код перенести в onCreate то выдает всегда 0
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
16.12.2013, 14:14     Расставить картинку по координатам #5
Цитата Сообщение от verylazy Посмотреть сообщение
тут выяснились нюансы - если спрашивать координаты вьюшки в методе onTouch то все работает
если же этот код перенести в onCreate то выдает всегда 0
Скорее всего это связано с тем, что ничего пока еще не успело отрисоваться и разместиться по своим местам.
попробуйте так:

Java
1
2
3
4
5
6
7
8
final int[] loc = {0, 0};
        v.post(new Runnable() {
            @Override
            public void run() {
                v.getLocationOnScreen(loc);
                // тут уже используем полученные координаты
            }
        });
))
verylazy
Заблокирован
16.12.2013, 15:00  [ТС]     Расставить картинку по координатам #6
Nак работает, но я все равно не могу понять как мне управлять всеми вьюшками, которые добавлены на корневой layout.
В Objective-C было все просто - главное окно, с которого я мог получить массив subview's и свободно менять их параметры - координаты начала, центра, размеры.

У меня была такая идея:
1. при первом запуске все расчеты для дочерних вьюшек делает layout
2. проходим по вьюшкам и запоминаем их абсолютные координаты
3. удаляем все лаяуты
4. меняем координаты вьюшек как требуется (мне надо их таскать пальцем по экрану и оставлять в любой позиции)

Тут такая жесть для меня - лаяуты, инфлатеры, групвью.....тьфу. Мозг сломать можно.
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
16.12.2013, 15:14     Расставить картинку по координатам #7
Цитата Сообщение от verylazy Посмотреть сообщение
2. проходим по вьюшкам и запоминаем их абсолютные координаты
3. удаляем все лаяуты
1 пункт не понял, какие расчеты?
2. получить всех детей можно так:
Java
1
2
3
4
5
// if v extends ViewGroup
        for(int i = 0; i < v.getChildCount(); i++) {
            View vChild = v.getChildAt(i);
            // vChild.getLocationOnScreen....
        }
3. v.removeAllViews();

Добавлено через 5 минут
4. В цикле, когда пробегаемся по всем детям подключаем тач листенер v.setOnTouchListener(otl);

В листенере уже производим все действия и смену координат вьюшек

Java
1
2
3
4
5
6
7
8
9
OnTouchListener otl = new OnTouchListener() {
        @Override
        public boolean onTouch(View arg0, MotionEvent arg1) {
 
            
            
            return false;
        }
    };
verylazy
Заблокирован
16.12.2013, 15:29  [ТС]     Расставить картинку по координатам #8
Цитата Сообщение от GukZiLLA Посмотреть сообщение
пункт не понял, какие расчеты?
Я тренируюсь на пасьянсе Медичи, точнее Марии Стюарт.
Что бы не делать десяток заготовок картинок для разных плотностей и размеров экрана я создал вот такой layout
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/tl"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="4dp"
        android:layout_marginTop="4dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:paddingLeft="4dp"
        android:paddingRight="4dp" >
        
        <TextView
            android:id="@+id/card0"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/c6" />
 
        <TextView
            android:id="@+id/card1"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/b6" />
 
        <TextView
            android:id="@+id/card2"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/k6" />
 
        <TextView
            android:id="@+id/card3"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/p6" />
 
        <TextView
            android:id="@+id/card4"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/c7" />
 
        <TextView
            android:id="@+id/card5"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/b7" />
 
        <TextView
            android:id="@+id/card6"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/k7" />
 
        <TextView
            android:id="@+id/card7"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/p7" />
 
        <TextView
            android:id="@+id/card8"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/c8" />
 
        <TextView
            android:id="@+id/card9"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/b8" />
 
        <TextView
            android:id="@+id/card10"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/k8" />
 
        <TextView
            android:id="@+id/card11"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/p8" />
 
    </TableRow>
 
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="4dp"
        android:layout_marginTop="4dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:paddingLeft="4dp"
        android:paddingRight="4dp" >
 
        <TextView
            android:id="@+id/card12"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/c9" />
 
        <TextView
            android:id="@+id/card13"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/b9" />
 
        <TextView
            android:id="@+id/card14"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/k9" />
 
        <TextView
            android:id="@+id/card15"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/p9" />
 
        <TextView
            android:id="@+id/card16"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Xс" />
 
        <TextView
            android:id="@+id/card17"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Xb" />
 
        <TextView
            android:id="@+id/card18"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Xk" />
 
        <TextView
            android:id="@+id/card19"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Xp" />
 
        <TextView
            android:id="@+id/card20"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Bc" />
 
        <TextView
            android:id="@+id/card21"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Bb" />
 
        <TextView
            android:id="@+id/card22"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Bk" />
 
        <TextView
            android:id="@+id/card23"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Bp" />
 
    </TableRow>
 
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="4dp"
        android:layout_marginTop="4dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:paddingLeft="4dp"
        android:paddingRight="4dp" >
 
        <TextView
            android:id="@+id/card24"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Qc" />
 
        <TextView
            android:id="@+id/card25"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Qb" />
 
        <TextView
            android:id="@+id/card26"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Qk" />
 
        <TextView
            android:id="@+id/card27"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Qp" />
 
        <TextView
            android:id="@+id/card28"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Kc" />
 
        <TextView
            android:id="@+id/card29"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Kb" />
 
        <TextView
            android:id="@+id/card30"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Kk" />
 
        <TextView
            android:id="@+id/card31"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Kp" />
 
        <TextView
            android:id="@+id/card32"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Ac" />
 
        <TextView
            android:id="@+id/card33"
            style="@style/RedCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Ab" />
 
        <TextView
            android:id="@+id/card34"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Ak" />
 
        <TextView
            android:id="@+id/card35"
            style="@style/BlackCard"
            android:background="@drawable/card_podlozhka"
            android:text="@string/Ap" />
 
    </TableRow>
 
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:focusableInTouchMode="false"
        android:paddingLeft="24dp"
        android:paddingRight="24dp" >
 
        <TextView
            android:id="@+id/label"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/label"
            android:textColor="@color/white"
            android:textSize="16sp" />
 
         <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|left"
            android:text="@string/button1_text" />
 
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|center_horizontal"
            android:text="@string/button2_text" />
 
        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|right"
            android:text="@string/button3_text" />
 
    </TableRow>
 
</TableLayout>

drawable, это типа подложка карты, прямоугольник со скругленными краями
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
 
    <corners android:radius="10dp" />
    <solid android:color="@color/white"/>
 
</shape>

и стили для надписей карт
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    <style name="RedCard">
        <item name="android:layout_width">0dp</item>
        <item name="android:layout_height">match_parent</item>
        <item name="android:layout_weight">1</item>
        <item name="android:gravity">center</item>
        <item name="android:layout_margin">8dp</item>
        <item name="android:textColor">@color/red</item>
        <item name="android:textSize">16sp</item>
    </style>
 
    <style name="BlackCard">
        <item name="android:layout_width">0dp</item>
        <item name="android:layout_height">match_parent</item>
        <item name="android:layout_weight">1</item>
        <item name="android:gravity">center</item>
        <item name="android:layout_margin">8dp</item>
        <item name="android:textColor">@color/black</item>
        <item name="android:textSize">16sp</item>
    </style>

Это извращение формирует три ряда по 12 карт. Все считает layout - отступы, размеры подложки.
Ну а дальше мне надо пальцем их таскать, как реализовать я понимаю. Не понимаю как быть с абсолютными координатами и как отключить все лаяуты, которые я использовал что бы сформировать все эти 36 карт.
Так понятнее?
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
16.12.2013, 15:39     Расставить картинку по координатам #9
Цитата Сообщение от verylazy Посмотреть сообщение
Это извращение формирует три ряда по 12 карт. Все считает layout - отступы, размеры подложки.
Ну а дальше мне надо пальцем их таскать, как реализовать я понимаю. Не понимаю как быть с абсолютными координатами и как отключить все лаяуты, которые я использовал что бы сформировать все эти 36 карт.
Так понятнее?
Просто ад

Предлагаю использовать GridView + DragListener
verylazy
Заблокирован
16.12.2013, 15:57  [ТС]     Расставить картинку по координатам #10
третий заход:

Представим себе стол на котором разложены игральные карты в три ряда по 12 карт.
Размеры стола мы заранее не знаем, но хочется что бы карты были такого размера что бы уместиться на столе.
Я говорю - сделайте размеры карт такими, что бы между ними были отступы и карты не выходили за пределы стола.

Все это за меня делает мой TableLayout со всеми вложенными layout и TextView's.
После того как верховное божество высчитало за меня отступы от краев стола, между картами, между рядами карт и сами размеры карт я хочу все эти размеры запомнить в массив что бы потом я мог менять расположение любой карты. Что то типа:
card[1].setX(100);
card[1].setY(500);

Добавлено через 9 минут
Java
1
2
3
4
5
6
7
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TableLayout tl = (TableLayout) findViewById(R.id.tl);
        for(int i = 0; i < tl.getChildCount(); i++) {
            System.out.println(tl.getChildAt(i).getClass().toString());
        }
выдает в консоль
Код
class android.widget.TableRow
class android.widget.TableRow
class android.widget.TableRow
class android.widget.TableRow
но мне они уже не нужны, они выполнили свою функцию - рассчитали размеры и отступы
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
16.12.2013, 16:02     Расставить картинку по координатам #11
verylazy, ну, я и предложил использовать GridView, чтобы не городить TableLayout'ами и TableRow'ами.

хотя, лучше наверно GridLayout, в зависимости от того, что требуется.
GridLayout можно подключить отдельной библиотекой, так как вышел он только в 4.0 и не будет работать на более ранних версиях, а библиотекой - будет.

http://developer.android.com/tools/s.../features.html

......


Проблема-то в чем? В том, что надо размеры запомнить, а не понятно как?
verylazy
Заблокирован
16.12.2013, 16:11  [ТС]     Расставить картинку по координатам #12
Если очень коротко то проблема в том, что я не могу понять как потом менять координаты этих вьюшек.

И я очень сомневаюсь, что GridLayout сделает то, что получилось сделать на TableLayout, но сейчас попробую переделать (хотя даже если получится - это не решит основную проблему)
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
16.12.2013, 16:19     Расставить картинку по координатам #13
Цитата Сообщение от verylazy Посмотреть сообщение
Если очень коротко то проблема в том, что я не могу понять как потом менять координаты этих вьюшек.
Стоп,
они должны после передвижения попадать строго в какие-нибудь ячейки, меняться местами
или чтобы их можно было двигать как захочется? одну увел влево, другую взял разместил поверх третьей и т.п.?

Если первый вариант, то gridLayout + dragListener
Если второй вариант, то я бы лично сделал RelativeLayout + TouchListener

у RelativeLayout вычислял бы размеры, делил на количество карт в одной строке (получая размеры одной карты) и расставлял бы их двумя циклами, один по x, другой по y.

Тут надо двигать саму view или как-бы создавать видимость передвижения view?
verylazy
Заблокирован
16.12.2013, 16:45  [ТС]     Расставить картинку по координатам #14
У меня эта программа написана полностью на Java, все работает.
Я создаю главное окно JFrame, в него добавляю JPanel и в нее 36 View по числу карт.
Потом делаю jpanel.setLayout(null);
Так как приложение десктопное то я не заморачивался и сделал размер окна фиксированным и карты расставляю циклом - все просто.

Тут же мне хочется что бы не я занимался расчетами начального положения карт на экране, а все что бы делала разметка. Типа резиновый дизайн. Потом я хочу сделать что то типа jpanel.setLayout(null) что бы мне уже не мешали эти компоновщики, а я сам мог устанавливать координаты в том же onTouch() - то есть двигать карту по экрану в любое положение и оставлять ее там.

И отвечаю на вопросы:
Цитата Сообщение от GukZiLLA Посмотреть сообщение
они должны после передвижения попадать строго в какие-нибудь ячейки, меняться местами
при первом раскладе когда приложение запускается они должны "попадать в ячейки"
потом уже как бы нет ячеек, я уже типа запомнил координаты ячеек для своих нужд
Цитата Сообщение от GukZiLLA Посмотреть сообщение
чтобы их можно было двигать как захочется?
точно!
Цитата Сообщение от GukZiLLA Посмотреть сообщение
у RelativeLayout вычислял бы размеры, делил на количество карт в одной строке (получая размеры одной карты) и расставлял бы их двумя циклами, один по x, другой по y.
я так делал, в десктопном варианте программы
под android это гимор, так как существует очень много комбинаций параметров экранов
это должен делать Layout(ы), после чего мы берем уже готовые вычисленные размеры и положение картинки на экране

Добавлено через 11 минут
в любом случае спасибо, обычно после того как проблема озвучена на форуме - она решается
жаль, что AbsoluteLayout нельзя использовать, моему мозгу легче с ним как-то
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
16.12.2013, 16:55     Расставить картинку по координатам #15
Цитата Сообщение от verylazy Посмотреть сообщение
Тут же мне хочется что бы не я занимался расчетами начального положения карт на экране, а все что бы делала разметка.
Цитата Сообщение от verylazy Посмотреть сообщение
под android это гимор, так как существует очень много комбинаций параметров экранов
это должен делать Layout(ы), после чего мы берем уже готовые вычисленные размеры и положение картинки на экране
Ну, тогда я вижу только один вариант:

- При action_DOWN - считываем координаты вьюхи и размеры v.getWidth() и v.getHeight() - запоминаем куда их надо.
Можно создать массив классов, где будет содержаться ссылка на вьюху + ее размеры
- Удаляем ее из родителя ((ViewGroup)v.getParent()).removeView(v)
- добавляем в другого родителя RelativeLayout, который невидимый и на весь экран
- получаем текущие параметры RelativeLayout par = v.getLayoutParams()
-- задаем ранее полученные размеры par.width и par.height
-- и всучиваем ранее полученные координаты par.leftMargin и par.topMargin
- При action_MOVE получаем MotionEvent event.getRawX() и event.getRawY() и делает так:

RelativeLayout par = v.getLayoutParams();
par.leftMargin = event.getRawX();
par.topMargin = event.getRawY()

Я так раньше делал и работало)

....

Просто если изначально расставлять все в какой-нибудь сетке, то придется удалять из родителя и фактически делать все пункты кроме последнего.

А если сразу размещать в RelativeLayout, то придется только потрудится вычислить его размеры и разместить карты ровненько - это, кстати, проще)

Добавлено через 52 секунды
Цитата Сообщение от verylazy Посмотреть сообщение
жаль, что AbsoluteLayout нельзя использовать, моему мозгу легче с ним как-то
Ак RelativeLayout-то на что )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2013, 17:01     Расставить картинку по координатам
Еще ссылки по теме:

Получить цвет пикселя на экране по координатам на delphi - Программирование Android
Нужно быстро (несколько раз в секунду) получить цвет пикселя экрана в другом приложении. adb shell screencap &gt; screen.png и adb...

Не отображает картинку - Программирование Android
Подскажите, в чём ошибка в приведённом коде. Пытаюсь вывести на экран простой png, но почему-то не получается. Я только начинаю изучать...

Вставить картинку - Программирование Android
Можно ли как-то через XML вставить картинку на экран?

Получить картинку ImageView - Программирование Android
Здравствуйте. Подскажите пожалуйста как можно получить ссылку/путь на ресурс картинки которая стоит в ImageView? Перечитал много форумов,...

Загрузить картинку в layout - Программирование Android
Доброго времени суток! У меня такая проблема ! Я загружаю из ресурса drawable картинку вот такам образом! imgView = (ImageView)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
verylazy
Заблокирован
16.12.2013, 17:01  [ТС]     Расставить картинку по координатам #16
массив классов у меня есть, куда же без него
Цитата Сообщение от GukZiLLA Посмотреть сообщение
- Удаляем ее из родителя ((ViewGroup)v.getParent()).removeView(v)
вот она, строчка моей мечты! вот она! я не понимал как работать с этой всей иерархией
думаю, теперь я понимаю что делать, спасибо еще раз
Yandex
Объявления
16.12.2013, 17:01     Расставить картинку по координатам
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru