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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.80
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
#1

Разработка собственных компонентов GUI - Программирование Android

26.03.2013, 15:06. Просмотров 2043. Ответов 7
Метки нет (Все метки)

Здравствуйте!
Разрабатываем математическую программу, к сожалению, использование стандартных элементов не подходит... Поэтому необходимо реализовать 2D движок, с помощью которого бы можно было на канве создавать динамически элементы управления, перемещать их, осуществлять некоторые события и прочее, возник вопрос с полем ввода.
Как можно реализовать компонент поле ввода, т.е. аналог обычного EditText только, чтобы его можно было отрисовать в любой позиции на канве и собственно осуществлять ввод? Или же как-то можно добавлять на канву стандарные компоненты и обрабатывать их события?

Заранее спасибо за ответ!

Добавлено через 7 минут
P.S.: Под фразой добавлять на канву стандартные элементы я имею в виду делать абсолютную привязку элементов к точка на канве, элементы могут храниться в другом контейнере поверх канвы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2013, 15:06     Разработка собственных компонентов GUI
Посмотрите здесь:

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

Ввод данных в поле с наэкранных собственных кнопок - Программирование Android
Добрый день. Делаю свою первую программу на Андроид и возникла проблема. Вот у меня пол-экрана занимают кнопки с цифрами и математическими...

Отключение GUI в Android - Программирование Android
Добрый день. Я хочу сделать что-то типа терминала на котором сутками запущена какая-то программа и ее нельзя свернуть или закрыть. ...

Создание нестандартного GUI - Программирование Android
Всем добрый вечер! Мне очень нравятся интерфейсы программ таких, как Opera, Dolphin Browser, Вконтакте и прочее, и очень хочется...

Книги по GUI для Android - Программирование Android
Подскажите пожалуйста, где можно найти всякие туториалы, или книги по GUI для Androidа. А то даже при создании простеньких приложений...

Обновление GUI с высокой частотой - Программирование Android
Всем привет. Есть приложение, которое соединяется с микроконтроллером через Bluetooth и выводит, поступающие с МК данные в EditText. ...

C# оптимизация приложения под разные экраны(не GUI) - Программирование Android
Здравствуйте. Дело в том, что изначально я делал игру(2d в Unity через спрайты) под 1366x768, но при запуске на других разрешениях...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.03.2013, 15:30     Разработка собственных компонентов GUI #2
вьюшки можно размещать в любом месте дисплея.

Добавлено через 3 минуты
и на канве можно рисовать в любом месте.
и уже существующие view можно рисовать на канве.
и можно екстенднуть view и дорисовать что нужно или самому рисовать.
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
26.03.2013, 15:46  [ТС]     Разработка собственных компонентов GUI #3
Я и спрашиваю, как это осуществить? Нужно создать некий лист, просто белый лист, который может быть значительно больше экрана устройства и который можно скроллить и масштабировать, а на него уже добавить элементы, которые естественно должны уменьшать и перемещаться вместе с этим листом

Добавлено через 3 минуты
В принципе, Вы бы очень помогли, если бы объяснили мне, как создать какой-то компонент динамически и потом просто, отрендрить его в спрайт на канву в том виде, в котором он бы отображался на экране
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.03.2013, 15:51     Разработка собственных компонентов GUI #4
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
class MyView extends View{
 
        public MyView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
            // TODO Auto-generated constructor stub
        }
 
        public MyView(Context context, AttributeSet attrs) {
            super(context, attrs);
            // TODO Auto-generated constructor stub
        }
 
        public MyView(Context context) {
            super(context);
            // TODO Auto-generated constructor stub
        }
 
        @Override
        protected void onDraw(Canvas canvas) {
            // TODO Auto-generated method stub
            super.onDraw(canvas);
            
            //рисуем на канвасе
        }
        
        
    }
Добавлено через 31 секунду
https://www.google.com.ua/search?q=a...hrome&ie=UTF-8
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
26.03.2013, 19:34  [ТС]     Разработка собственных компонентов GUI #5
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
package com.contedevel.engine;
 
import com.contedevel.cdcalculator.R;
 
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;
public class Surface extends SurfaceView {
       private SurfaceHolder holder;
 
       //конструктор
       public Surface(Context context) 
       {
             super(context);
             holder = getHolder();
             holder.addCallback(new SurfaceHolder.Callback() 
             {
                    public void surfaceDestroyed(SurfaceHolder holder) 
                    {
                    }
 
                    @Override
                    public void surfaceCreated(SurfaceHolder holder) 
                    {
                           Canvas c = holder.lockCanvas(null);
                           onDraw(c);
                           holder.unlockCanvasAndPost(c);
                    }
 
                    @Override
                    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) 
                    {
                    }
             });
       }
 
       //Рисуем нашу картинку на черном фоне
       protected void onDraw(Canvas canvas) 
       {
       }
}
Выше пример создания SurfaceView. Как мне сделать, чтобы, к примеру, созданная Button рендрилась в Canvas c? Т.е. это должна быть обычная кнопка, просто в качестве канвы использовать c....
Надеюсь правильно сформулировал вопрос...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.03.2013, 19:37     Разработка собственных компонентов GUI #6
button.draw(c);
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
26.03.2013, 19:40  [ТС]     Разработка собственных компонентов GUI #7
Я пробовал, но ничего не произошло, хотя картинка, которую я также создал отрендрилась. Можете код написать с отрисовкой кнопки, может я инициализировал неправильно?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2013, 20:13     Разработка собственных компонентов GUI
Еще ссылки по теме:

Методы компонентов - Программирование Android
Здравствуйте, помогите пожалуйста со следующим Как сделать простенький таймер, запуск которого осуществляется так: Button btn =...

Видимость компонентов - Программирование Android
Что прописывать нужно в mainActivity для того чтобы при нажатии скрылся компонент ImageView? Как реализовать событие нажатия я знаю, а вот...

Масштабирование компонентов на андроиде - Программирование Android
Сейчас пытаюсь освоить андроид 2.3.3 (но если окажется, что там все плохо, то может повышу версию). Суть проблемы: нужно расставить 6...

Размещение компонентов на LinearLayaut - Программирование Android
подскажите если на LinearLayaut нужно разместить ну например кнопку и textview где то в середине экрана, то как вы их размещаете? ...

Различия View-компонентов - Программирование Android
EditTExt в первой строке добавлен на экран вручную. EditTExt во второй строке добавлен на экран программно. Они различаются по...


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

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.03.2013, 20:13     Разработка собственных компонентов GUI #8
Цитата Сообщение от contedevel Посмотреть сообщение
Можете код написать с отрисовкой кнопки
не понял.

Цитата Сообщение от contedevel Посмотреть сообщение
может я инициализировал неправильно?
может.

Добавлено через 10 минут
button.layout(0, 0, 200, 50);
button.draw(c);
Yandex
Объявления
26.03.2013, 20:13     Разработка собственных компонентов GUI
Ответ Создать тему
Опции темы

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