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

Не получается Drag & Drop - Android

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ВАндрейВ
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 10
09.05.2013, 11:40     Не получается Drag & Drop #1
Здравствуйте! Я тренируюсь с использование 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 слоя (или что-то вроде этого, я не понял). Помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2013, 11:40     Не получается Drag & Drop
Посмотрите здесь:

Android Button & ImageButton
Android List - Drag and Drop
Android Bitmap & BitmapFactory
RadioButton & Fragments Android
Android Несовместимость CheckBox & AlertDialog
Android Работа с drop down navigation в action bar
Android Drag and Drop способ реализации
Не могу реализовать условие Drag and Drop Android
Android SurfaceView&Canvas
Android Android studio & yandexmapkit
Drag And Drop определение view Android
Android Drag and Drop в GridView

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
91 / 91 / 5
Регистрация: 04.03.2013
Сообщений: 295
09.05.2013, 11:44     Не получается Drag & Drop #2
http://android-developers.blogspot.c...ultitouch.html
ВАндрейВ
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 10
09.05.2013, 11:47  [ТС]     Не получается Drag & Drop #3
Не подходит. Там везде используется рисование, а мне надо передвигать стандартный View.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.05.2013, 12:42     Не получается Drag & Drop #4
http://developer.android.com/guide/t...drag-drop.html
http://www.vogella.com/articles/Andr...p/article.html
ВАндрейВ
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 10
09.05.2013, 12:53  [ТС]     Не получается Drag & Drop #5
На сколько я знаю, удобная поддержка Drag and Drop появилась только в Android 3, а как я буду использовать данный вами способ, если я хочу чтобы моё приложение открывалось также в Android 2?
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.05.2013, 14:04     Не получается Drag & Drop #6
https://code.google.com/p/android-dr...cActivity.java
Yandex
Объявления
09.05.2013, 14:04     Не получается Drag & Drop
Ответ Создать тему
Опции темы

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