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

Изменение координат кнопки - Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 48, средняя оценка - 4.88
Tiesto
3 / 3 / 1
Регистрация: 20.12.2009
Сообщений: 68
16.08.2011, 17:49     Изменение координат кнопки #1
Здравствуйте, вопрос как программно изменять координаты кнопки ?

ниже приведу ссылки с помощью которых пытался разобраться, возможно кто сообразит.
android-button-in-arbitrary-position-over-relativelayout
change-button-position
dynamic-positioning-of-a-button-android

Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2011, 17:49     Изменение координат кнопки
Посмотрите здесь:

Android Не определение GPS координат
Получение координат нажатия Android
Android Смещение координат GPS/NetWork
TableLayout. Кнопки получаются разных размеров (кнопки-картинки) Android
Определить нажатие кнопки Home и кнопки сворачивания приложения Android
Textview. Изменение текста по нажатию кнопки не происходит Android
Android Изменение языка приложения через нажатие кнопки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Опа!!
14 / 14 / 0
Регистрация: 30.09.2009
Сообщений: 89
16.08.2011, 21:15     Изменение координат кнопки #2
Ну примеры по сцылкам весьма понятные и развернутые.

Java
1
2
3
4
5
6
7
8
9
10
public void btnClick(View btn)
    {
        button = (Button)findViewById(R.id.button2);
        LinearLayout.LayoutParams linnear_lay = new LinearLayout.LayoutParams(250, 450); // высота и ширина
        linnear_lay.leftMargin = 15; // отступ слева
        linnear_lay.topMargin = 25; // отступ сверху
        linnear_lay.gravity = 16; // = CENTER_VERTICAL
        
        button.setLayoutParams(linnear_lay);
    }
Вещаем btnClick на какую-либо кнопку (к примеру), по нажатию задаем новые параметры слоя и устанавливаем эти параметры к нужному баттону. left_margin, gravity и т.д. - стандартные параметры слоя, можно посмотреть в дизайнере, интовые значения для позиций типа TOP, CENTER и т.д. есть в документации (по идее будет работать и через Gravity.TOP и т.д.)
Tiesto
3 / 3 / 1
Регистрация: 20.12.2009
Сообщений: 68
17.08.2011, 20:55  [ТС]     Изменение координат кнопки #3
Не работает.

вот мой код

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
package com.samples.button;
 
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;
import android.view.View;
 
public class ButtonActivity extends Activity {
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
       
        
        final Button button = (Button)findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                LinearLayout.LayoutParams linnear_lay = new LinearLayout.LayoutParams(25, 45); 
                linnear_lay.leftMargin = 150; 
                linnear_lay.topMargin = 25; 
                linnear_lay.gravity = 16; 
                
                button.setLayoutParams(linnear_lay);
            }
        });
    }
}
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
 
    <Button 
        android:id="@+id/button1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Button 1"/>
 
</LinearLayout>
Опа!!
14 / 14 / 0
Регистрация: 30.09.2009
Сообщений: 89
17.08.2011, 23:28     Изменение координат кнопки #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
28
29
30
31
package com.samples.button;
 
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;
import android.view.View;
 
public class ButtonActivity extends Activity 
{
    Button button;  
    
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        button = (Button)findViewById(R.id.button1);
     }
 
     public void onClick(View v) 
     {
                LinearLayout.LayoutParams linnear_lay = new LinearLayout.LayoutParams(25, 45); 
                linnear_lay.leftMargin = 150; 
                linnear_lay.topMargin = 25; 
                linnear_lay.gravity = 16; 
                
                button.setLayoutParams(linnear_lay);
      }
}
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
 
        <Button 
                android:id="@+id/button1" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                android:text="Button 1"
                android:onClick = "onClick"
        />
</LinearLayout>
Попробуйте так. Набирал прямо в местном редакторе, мог ошибиться где-то, если что - подправите, думаю.
Tiesto
3 / 3 / 1
Регистрация: 20.12.2009
Сообщений: 68
18.08.2011, 00:12  [ТС]     Изменение координат кнопки #5
Спасибо за ответ.

не работает, кажется нельзя программно задать кнопке координату.
есть мысль что если использовать RelativeLayout, то можно позиционировать относительно центра, попробую. Если не получится нарисую изображение и буду использовать его как кнопку, позиционирование картинок у меня получалось.
Опа!!
14 / 14 / 0
Регистрация: 30.09.2009
Сообщений: 89
18.08.2011, 00:27     Изменение координат кнопки #6
Как же не работает? Самый первый код что я кидал у меня работал, по нажатию клавиша изменяла свои координаты (пусть и не напрямую по осям, а за счет отступов, выравниваний и т.д.) и даже размеры.

Добавлено через 12 минут
Цитата Сообщение от Tiesto Посмотреть сообщение
есть мысль что если использовать RelativeLayout, то можно позиционировать относительно центра
это можно сделать и на LinnearLayout
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2011, 11:23     Изменение координат кнопки
Еще ссылки по теме:

Android Передача координат на карту Google
Android Получение координат по адресу
Оформление кнопки: отследить, вмещается ли текст в размеры кнопки Android
Android Отправка координат ссылкой
Изменение размера текста кнопки вместе с размером самой кнопки? Android

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

Или воспользуйтесь поиском по форуму:
Tiesto
3 / 3 / 1
Регистрация: 20.12.2009
Сообщений: 68
18.08.2011, 11:23  [ТС]     Изменение координат кнопки #7
Работает, linnear_lay.gravity убрал, спасибо.
Yandex
Объявления
18.08.2011, 11:23     Изменение координат кнопки
Ответ Создать тему
Опции темы

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