Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ВАндрейВ
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 10
#1

Не получается Drag & Drop - Программирование Android

09.05.2013, 11:40. Просмотров 1522. Ответов 7
Метки нет (Все метки)

Здравствуйте! Я тренируюсь с использование MotionEvent, и решил сделать программу для перетаскивания картинки самостоятельно. Вообщем я смог написать код, а когда запустил на устройстве, то работа меня не обрадовала: картинка передвигалась, но она отставала от пальца и прыгала постоянно через каждый такт в начало координат, а потом снова в своё отстающее от пальца, но движущееся, положение.

Вот мой Layout:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/layout" >
 
    <ImageView
        android:id="@+id/circle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:contentDescription="@string/hello_world"
        android:src="@drawable/orange" />
 
</RelativeLayout>
Вот код программы:
Java
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
package com.example.dragingelement;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RadioGroup.LayoutParams;
import android.widget.RelativeLayout;
 
public class MainActivity extends Activity implements OnTouchListener {
    
    ImageView circle;
    RelativeLayout layout;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        circle = (ImageView) findViewById(R.id.circle);
        layout = (RelativeLayout) findViewById(R.id.layout);
        circle.setOnTouchListener(this);
    }
 
    @Override
    public boolean onTouch(View view, MotionEvent event) {
        // TODO Auto-generated method stub
        
        if (view.getId() != circle.getId())
            return false;
        
        int action = event.getAction();
        int x = (int) event.getX();
        int y = (int) event.getY();
        
        switch(action)
        {
        case MotionEvent.ACTION_DOWN:
            circle.setImageResource(R.drawable.yellow);
            break;
        case MotionEvent.ACTION_MOVE:
            ViewGroup.MarginLayoutParams marginP = new ViewGroup.MarginLayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            marginP.setMargins((x - 36), (y - 36), 0, 0);
            RelativeLayout.LayoutParams lParams = new RelativeLayout.LayoutParams(marginP);
            circle.setLayoutParams(lParams);
            break;
        case MotionEvent.ACTION_UP:
            circle.setImageResource(R.drawable.orange);
            break;
        case MotionEvent.ACTION_CANCEL:
            circle.setImageResource(R.drawable.orange);
            break;
        }
        
        return true;
    }
 
}
Я также пытался решить свою проблему поиском похожих примеров. Но там везде было рисование нового View или использование какого-то window слоя (или что-то вроде этого, я не понял). Помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2013, 11:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не получается Drag & Drop (Программирование Android):

Drag and Drop в GridView - Программирование Android
Всем привет! Подскажите как осуществляется перемещение обьектов внутри GridView. Не могу найти достойного примера чтобы разобраться. ...

List - Drag and Drop - Программирование Android
Всем доброго времени суток. Помогите плиззз. Не знаю что написать в поисковике чтоб найти нужную тему. Хочу создать поисковик стран....

Drag And Drop определение view - Программирование Android
Привет. Каким образом передать информацию в событии DragEvent.ACTION_DROP что за view тянется. Допустим есть панель с различными...

Drag and Drop способ реализации - Программирование Android
Ребята нужна помощь, имеется, допустим, 7 view объектов, как мне сделать чтобы из этих 7 можно было перетаскивать только 3.

Не могу реализовать условие Drag and Drop - Программирование Android
Здравствуйте форумчане! private class ChoiceDragListener implements OnDragListener { @Override public boolean onDrag(View v,...

DrawGrid & Drag&Drop - Delphi
Здравствуйте. Суть вопроса - поставлена задача по заполнению TDrawGrid формата 5х5 изображениями одинакового размера (одна ячейка должна...

7
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
09.05.2013, 11:44 #2
http://android-developers.blogspot.c...ultitouch.html
0
ВАндрейВ
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 10
09.05.2013, 11:47  [ТС] #3
Не подходит. Там везде используется рисование, а мне надо передвигать стандартный View.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.05.2013, 12:42 #4
http://developer.android.com/guide/topics/ui/drag-drop.html
http://www.vogella.com/articles/AndroidDragAndDrop/article.html
0
ВАндрейВ
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 10
09.05.2013, 12:53  [ТС] #5
На сколько я знаю, удобная поддержка Drag and Drop появилась только в Android 3, а как я буду использовать данный вами способ, если я хочу чтобы моё приложение открывалось также в Android 2?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.05.2013, 14:04 #6
https://code.google.com/p/android-dr...cActivity.java
0
AntonPopkov
0 / 0 / 0
Регистрация: 03.02.2018
Сообщений: 1
03.02.2018, 19:05 #7
Может кому-нибудь ещё поможет. Замените getX и getY на getRawX и getRawY.
0
petruchodd
07.02.2018, 18:20     Не получается Drag & Drop
  #8

Не по теме:

Цитата Сообщение от ВАндрейВ Посмотреть сообщение
в Android 3, а как я буду использовать данный вами способ, если я хочу чтобы моё приложение открывалось также в Android 2?
шоо ? шо это значит

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2018, 18:20
Привет! Вот еще темы с ответами:

Drag & Drop - Delphi
Как сделать drag&amp;drop файлов из проводника, например, на Memo1, это может быть один, а может быть несколько файлов формата rar или zip, и...

Drag&Drop - Delphi
Вот я зделал чтоб при перетаскивание c List на Panel окно закрывалась!А как зделать чтоб окно сворачивалась? TListBoХ: В OnDragDrop: ...

Drag & drop - C++ Qt
Я ничего не смыслю в qt. Кто может, помогите пожалуйста склеить программу из этого - http://www.cyberforum.ru/qt/thread1215670.html и...

Drag&Drop - C#
Задача заключается в следующем: Есть два елемента Panel, на которых расположены какие то контролы (допустим кнопки). Как сделать...


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

Или воспользуйтесь поиском по форуму:
8
07.02.2018, 18:20
Ответ Создать тему
Опции темы

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