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

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

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

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

16.08.2011, 17:49. Просмотров 6707. Ответов 6
Метки нет (Все метки)

Здравствуйте, вопрос как программно изменять координаты кнопки ?

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

Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2011, 17:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изменение координат кнопки (Программирование Android):

Изменение размера текста кнопки вместе с размером самой кнопки? - Программирование Android
Есть 100500 кнопок, нужно имитировать их нажатие. делаю это через селекторы и android:state_pressed но, текст таким образом не...

Изменение языка приложения через нажатие кнопки - Программирование Android
Здравствуйте! Есть приложение, в нём есть кнопка "Язык", и я хочу, чтобы по нажатии на кнопку выскакивала менюшка с выбором языка. Как это...

Textview. Изменение текста по нажатию кнопки не происходит - Программирование Android
Добрый день. Подскажите как же реализовывается подобное : в методе onCreat получаем интент с id выбранного элемента на предыдущей...

TableLayout. Кнопки получаются разных размеров (кнопки-картинки) - Программирование Android
Я решил делать приложение в TableLayout. Добавил TableRow, в него 3 кнопки. Но кнопки у меня картинки, соответственно я в свойствах кнопок...

Оформление кнопки: отследить, вмещается ли текст в размеры кнопки - Программирование Android
Добрый день, задача стоит следующая динамически создаю кучу кнопок, каждой присваиваю setText из массива. for (int...

Определить нажатие кнопки Home и кнопки сворачивания приложения - Программирование Android
По аналогии с backPressed: @Override public void onBackPressed() { }

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Опа!!
15 / 15 / 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 и т.д.)
1
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>
0
Опа!!
15 / 15 / 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>
Попробуйте так. Набирал прямо в местном редакторе, мог ошибиться где-то, если что - подправите, думаю.
1
Tiesto
3 / 3 / 1
Регистрация: 20.12.2009
Сообщений: 68
18.08.2011, 00:12  [ТС] #5
Спасибо за ответ.

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

Добавлено через 12 минут
Цитата Сообщение от Tiesto Посмотреть сообщение
есть мысль что если использовать RelativeLayout, то можно позиционировать относительно центра
это можно сделать и на LinnearLayout
1
Tiesto
3 / 3 / 1
Регистрация: 20.12.2009
Сообщений: 68
18.08.2011, 11:23  [ТС] #7
Работает, linnear_lay.gravity убрал, спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2011, 11:23
Привет! Вот еще темы с ответами:

Изменение координат кнопки в событии SizeChanged формы - Visual Basic .NET
Накидал такой код Public Class Form1 Public Sub Form1_Load() Handles MyBase.Load Dim x As New Button ...

Изменение координат кнопки при наведении курсора - C#
всем привет как сделать что бы когда курсор мишки на него поставишь кнопка бутон от него сдвинулся помигите пожалуйста

Изменение координат кнопки при нажатии на нее - C# WPF
Есть кнопка, которая находиться в верху окна. Нажав на нее, она должна опуститься ниже на определенное число пунктов. Как это реализовать?

Произвольное изменение координат мышки при нажатии кнопки - C#
как сделать так чтобы при нажатии кн0пки координаты мышки изменялись произвольным образом


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.08.2011, 11:23
Ответ Создать тему
Опции темы

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