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

Некорректное перетаскивание картинки и не создаются 2 layout - Android

Восстановить пароль Регистрация
 
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 176
25.10.2015, 20:48     Некорректное перетаскивание картинки и не создаются 2 layout #1
Вобщем, 2 проблемы в 1 коде.
1) Не получается создать 2 LinearLayout
2) При перетаскивании картинки, изменяет размеры сам Layout.
Вот код:
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
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
// Прошу помочь. Коментарии прелогаються.
package com.dendroid.TheSlotMachine;
 
import android.app.*;
import android.os.*;
import android.view.ViewGroup.*;
import android.widget.*;
import android.graphics.drawable.*;
import android.view.*;
 
public class MainActivity extends Activity
{
    int status = 0;
    private int mX;
    private int mY;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        
        super.onCreate(savedInstanceState);
        LayoutParams dd_wrap_content = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        LayoutParams dd_fill_parent = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);            
        LayoutParams dd_100 = new LinearLayout.LayoutParams(100, 100);                      
        LinearLayout ddLayout = new LinearLayout(this);
        ddLayout.setOrientation(LinearLayout.VERTICAL);
        ddLayout.setGravity(Gravity.CENTER_HORIZONTAL);
        ddLayout.setLayoutParams(dd_100);
        BitmapDrawable ddLinLayout = (BitmapDrawable)
        getResources().getDrawable(R.drawable.ic_launcher); 
        ddLayout.setBackground(ddLinLayout);
        
        LinearLayout ddLayout2 = new LinearLayout(this);
        ddLayout2.setOrientation(LinearLayout.VERTICAL);
        ddLayout2.setGravity(Gravity.CENTER_HORIZONTAL);
        ddLayout2.setLayoutParams(dd_100);
        
        final TextView ddTitleTextView = new TextView(this);
        ddTitleTextView.setText("Hello no layout!");
        ddTitleTextView.setLayoutParams(dd_wrap_content);
        ddLayout.addView(ddTitleTextView);
        Button ddBtn = new Button(this);
        ddBtn.setText("Tv test");
        ddBtn.setLayoutParams(dd_wrap_content);
        ddLayout.addView(ddBtn);
        final ImageView img = new ImageView(this);
        img.setImageResource(R.drawable.ic_launcher);
        img.setLayoutParams(dd_wrap_content);
        ddLayout.addView(img);
        OnTouchListener lImg = new OnTouchListener() {
 
            @Override
            public boolean onTouch(View view, MotionEvent event)
            {
                status = 1;
                ddTitleTextView.setText("Нажата кнопка img");
                if(status==1) // any event from down and move
                {
                    final int X = (int) event.getRawX();
                    final int Y = (int) event.getRawY();
                    switch (event.getAction() & MotionEvent.ACTION_MASK) {
 
                            //ACTION_DOWN срабатывает при прикосновении к экрану,
                            //здесь определяется начальное стартовое положение объекта:
                        case MotionEvent.ACTION_DOWN:
                            LinearLayout.LayoutParams lParams = (LinearLayout.LayoutParams) view.getLayoutParams();
                            mX = X - lParams.leftMargin;
                            mY = Y - lParams.topMargin;
                            break;
 
                            //ACTION_MOVE обрабатывает случившиеся в процессе прикосновения изменения, здесь
                            //содержится информация о последней точке, где находится объект после окончания действия прикосновения ACTION_DOWN:
                        case MotionEvent.ACTION_MOVE:
                            LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) view.getLayoutParams();
                            layoutParams.leftMargin = X - mX;
                            layoutParams.topMargin = Y - mY;
                            layoutParams.rightMargin = -250;
                            layoutParams.bottomMargin = -250;
                            img.setLayoutParams(layoutParams);
                            break;
                    }
                    return true;
 
                }
                return false;
            }
        };
        img.setOnTouchListener(lImg);
        OnClickListener ddBtn1 = new OnClickListener() {
            @Override
            public void onClick(View v) {
                ddTitleTextView.setText("Нажата кнопка");
            }
        };
        ddBtn.setOnClickListener(ddBtn1);
    
        ScrollView ddScroll = new ScrollView(this);
        ddScroll.setBackgroundColor(android.R.color.transparent);
        ddScroll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                                                LayoutParams.FILL_PARENT));
        ddScroll.addView(ddLayout);
        ddScroll.addView(ddLayout2);
        setContentView(ddScroll);
    }
}
Добавлено через 5 часов 45 минут
Отлично. 2 лойота создал. Осталась 1 проблемма
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2015, 20:48     Некорректное перетаскивание картинки и не создаются 2 layout
Посмотрите здесь:

Android Очистить layout
4 кнопки и layout Android
Android TextViews и Layout
Android Разметка layout
Android layout 9 inch
Drawer Layout Android
Некорректное отображение приложения в Graphic Layout и на телефоне Android
Android Перерисовка layout
Квадратный Layout Android
Android переходы layout
Лупа на layout Android
Android layout Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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