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

Создание кастомного View "Матрица" - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Полное закрытие приложения. Метод? http://www.cyberforum.ru/android-dev/thread1016410.html
Здравствуйте, подскажите какой метод вызывается когда я смахиваю приложение в запущенных задачах? Нужно сделать сохранение настроек при полном закрытии приложения. Так и не нашёл какой метод за это отвечает. Эти методы мне не подходят: @Override public void onResume() {
Android XML фирменной карточки от гугл Всем привет! Ребят, помогите нарисовать такую плиточку :( Но как сделать скошенные углы + тень внизу? (если кликнуть на картинку и присмотреться, то видно :)) Если у кого-то есть готовый XML код, поделитесь пожалуйста, спасибо :) http://www.cyberforum.ru/android-dev/thread1016324.html
Android GPS - Изменение местоположения
Здравствуйте ув. Программисты. Как можно реализовать следующее: -Есть программа при запуске определяет местоположение и отправляет данные на сервер + активность(Онлайн или Оффлайн). При старте онлайн при выходе оффлайн. -Далее хотел сделать на закрытие программы, отправку данных на сервер, что девайс оффлайн. Но почитал и понял что закрывать приложение полностью т.е. не вызов кнопки...
Обработка касаний в SurfaceView Android
Всем привет! Для обработки касаний в surfaceview определяю OnTouchEvent () но касания не обрабатываются. Контролирую через Log.d(). В чем может быть проблема?
Android Получить данные GPS http://www.cyberforum.ru/android-dev/thread1016123.html
Доброе утро ув. Программисты! Вопрос: Как получить данные GPS ? Действия: Делаю так: LocationManager locationManager; String context = Context.LOCATION_SERVICE; locationManager = (LocationManager)getSystemService(context); String provider = LocationManager.GPS_PROVIDER;
Android Нужна пом. в программировании Помогите пожалуйста с программированием... Мне нужно чтобы по кнопке ЧИТАТЬ, читался text файл из raw папки... Как это сделать? Если можно пример полного кода. подробнее

Показать сообщение отдельно
sanek819
2 / 2 / 0
Регистрация: 15.06.2010
Сообщений: 13

Создание кастомного View "Матрица" - Android

23.11.2013, 18:16. Просмотров 681. Ответов 2
Метки (Все метки)

Здравствуйте! Взялся за написание компонента, который отображает матрицу произвольного размера.

Java
1
2
3
4
public class MatrixView extends View
{
    private int rows, columns; //Число строк, столбцов матрицы
    private EditText[][] matrix; //Двумерный массив, содержащий поля ввода
Идея была такая: пользователь вводит размерность матрицы, жмет "Ввести матрицу", после чего отображается компонент MatrixView с таким размером, который ввел пользователь. Затем пользователь заполняет матрицу(вводит значения в EditText-ы) и жмет "Сохранить матрицу", после чего сохраняется двумерный массив double-ов с введенной матрицей.
Конструктор класса:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public MatrixView(Context context)
    {
        super(context);
        matrix = new EditText[rows][columns];
 
        for(int i = 0;i < rows;i++)
        {
            for(int j = 0;j < columns;j++)
            {
                matrix[i][j] = new EditText(context);
                matrix[i][j].setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL); //Поля для ввода десятичных чисел
            }
        }
    }
Тут сразу возник вопрос: Как передать компоненту размеры, которые ввел пользователь, чтобы записать их в rows и columns?
Еще возник другой вопрос, а как это рисовать?
Единственное, что пришло в голову
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
        @Override
    protected void onDraw(Canvas canvas) //Метод отрисовки
    {
        super.onDraw(canvas);
        
        int widthTail = getWidth()/(columns + 1); //Ширина одного EditText-а
        int heightTail = widthTail*3/4; //Высота одного EditText-а
 
                RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        
        int leftMargin = (getWidth() - rows*widthTail)/(rows + 1); //Отступ слева каждого EditText-a
        int rightMargin = leftMargin; //Отступ справа каждого EditText-a
        int topMargin = (getHeight() - columns*heightTail)/(columns + 1); //Отступ сверху каждого EditText-a
        int bottomMargin = topMargin; //Отступ снизу каждого EditText-a
        
        for(int i = 0;i < rows;i++)
        {
            int topM = (i + 1)*topMargin + i*heightTail; //Отступ рисуемого EditText-a от верхнего края
            int bottomM = (rows - i)*bottomMargin + (rows - i - 1)*heightTail; //Отступ рисуемого EditText-a от нижнего края
            for(int j = 0;j < columns;j++)
            {
                int leftM = (j + 1)*leftMargin + j*widthTail; //Отступ рисуемого EditText-a от левого края
                int rightM = (columns - j)*rightMargin + (columns - j - 1)*widthTail; //Отступ рисуемого EditText-a от правого края
                lp.setMargins(leftM, topM, rightM, bottomM);
                matrix[i][j].setLayoutParams(lp);
                matrix[i][j].draw(canvas);
            }
        }
    }
Не могу понять, как сделать так, чтобы пользователь ввел размерность матрицы, после этого создался компонент с заданной пользователем размерностью, создался массив EditText[rows][columns] и все это отобразилось с заданными отступами. Помогите, пожалуйста, разобраться.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru