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

DragAndDrop free on Layout - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Qt5 (QML) http://www.cyberforum.ru/android-dev/thread1551379.html
Здравствуйте! Как можно из cpp файла перенести переменную в модели(QML) в Qt5?
Android Как на кнопку назначить ScaleGesture Есть рабочий код для layout public class AndroidScaleGestureDetectorActivity extends Activity { TextView scaleGesture; ScaleGestureDetector scaleGestureDetector; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { http://www.cyberforum.ru/android-dev/thread1551372.html
Весь пакет java,gradle,genymotion,android sdk Android
Добрый день, форумчаны. Я не знаю, как описать проблему, опишу ее как смогу. Итак, я использую lubuntu. До этого использовал mint. Но пришлось переустановить, т.к он был более требовательным к ресурсам, чем ожидалось. Я хочу начать программировать под android, но у меня конкретные проблемы с установкой софта. Когда я ставлю intelijj idea, все что получается, то это перед установкой idea...
Менять xml программно Android
допустим есть такой файл бэкграунда: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <corners android:radius="200dp" /> <gradient android:angle="90" android:startColor="@color/lightGreen"
Android Программное добавление рамки Layout http://www.cyberforum.ru/android-dev/thread1550891.html
Добавляю рамку к Layout с помощью XML файла: <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="@dimen/border_line_thickness" android:color="#FF000000" /> <corners android:radius="0dp" /> </shape> Как добавить ее в коде java? (так как цвет будет всегда разный)
Android Сохранение ImageView Всем привет, У меня такой вопрос, есть код который сохраняет imageview в папку Pictures , все работает и сохраняет ,захожу в проводник в папку Pictures на андройде ,картинка есть, но пытаюсь зайти через Носитель (МТР) на компе там папка пустая, подскажите ,что нужно сделать? File root = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString());... подробнее

Показать сообщение отдельно
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 534

DragAndDrop free on Layout - Android

13.10.2015, 18:56. Просмотров 376. Ответов 7
Метки (Все метки)

Привет, честно искал, но того, что нужно, не нашел.

Я хочу перетаскивать view элементы по экрану, свободно, те примеры что нашел рассказывают как получить событие при перетаскивании элемента из одного laytout в другой.

Значит есть например ImageView. Нарыл в гугле.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
img = (ImageView) findViewById(R.id.imgView);
 
img.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            ClipData.Item item = new ClipData.Item((CharSequence) v.getTag());
            String[] mimeTypes = { ClipDescription.MIMETYPE_TEXT_PLAIN };
            ClipData dragData = new ClipData(v.getTag().toString(), mimeTypes, item);
 
            // Instantiates the drag shadow builder.
            View.DragShadowBuilder myShadow = new View.DragShadowBuilder(img);
 
            // Starts the drag
            v.startDrag(dragData, // the data to be dragged
                    myShadow, // the drag shadow builder
                    null, // no need to use local data
                    0 // flags (not currently used, set to 0)
            );
            return true;
        }
    });
Из всего этого понимаю только создание тени и v.startDrag, остальное для меня магия, поясните если кто понимает.
дальше....
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
// Set the drag event listener for the View
    img.setOnDragListener(new View.OnDragListener() {
        @Override
        public boolean onDrag(View v, DragEvent event) {
            switch (event.getAction()) {
                case DragEvent.ACTION_DRAG_STARTED:
                    layoutParams = (RelativeLayout.LayoutParams) v.getLayoutParams();
                    RelativeLayout.LayoutParams.WRAP_CONTENT);
                    x = (int) event.getX();
                    y = (int) event.getY();
                    Log.d(msg, "Action is DragEvent.ACTION_DRAG_STARTED " + x + " " + y);
                    break;
                case DragEvent.ACTION_DRAG_ENTERED:
                    Log.d(msg, "Action is DragEvent.ACTION_DRAG_ENTERED");
                    x = (int) event.getX();
                    y = (int) event.getY();
                    break;
                case DragEvent.ACTION_DRAG_EXITED:
                    Log.d(msg, "Action is DragEvent.ACTION_DRAG_EXITED");
                    x = (int) event.getX();
                    y = (int) event.getY();
                    break;
                case DragEvent.ACTION_DRAG_LOCATION:
                    Log.d(msg, "Action is DragEvent.ACTION_DRAG_LOCATION");
                    break;
                case DragEvent.ACTION_DRAG_ENDED:
                    if (dropEventNotHandled(event)) {
                        layoutParams.setMargins(x, y, 0, 0);
                        Log.d(msg, "end " + v.getX() + " " + v.getY());
                        v.setLayoutParams(layoutParams);
                    }
 
                    break;
                case DragEvent.ACTION_DROP:
                    x= (int) event.getX();
                    y= (int) event.getY();
                    Log.d(msg, "ACTION_DROP event " );
 
                    break;
                default:
                    break;
            }
            return true;
        }
    });
 private boolean dropEventNotHandled(DragEvent dragEvent) {
        return !dragEvent.getResult();
    }
Тут вижу когда происходит то или иное событие, знаю когда пользователь отпустил view, но где он его отпустил координаты получить не могу, на стаке есть не один такой вопрос, но ответа нет.

Еще вопрос, насколько я понял реализовать можно мою задачу только на RelativeLayout. Это так?
И перемещение view осуществлять через setMargins?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru