2013-05-10 2 views
0

Я андроид для noob, и у меня проблемы с попыткой позиционировать кнопку программно из нижней/центральной точки, а не по умолчанию сверху/слева. У моей кнопки есть стрелка внизу, и я хочу установить положение на кончик стрелки. Любая помощь приветствуется.Как мне установить кнопку снизу/в центре?

МОЙ КОД

popUpButton = (Button) findViewById(R.id.popUp); 
    popUpButton.setOnClickListener(this); 

public void updateMsg(String t_info, float t_x, float t_y, int t_c){ 
    //infoView.updateInfo(t_info, t_x, t_y, t_c); 
    popUpButton.setText(TouchView.touchInfo);  
    popUpButton.setX(t_x); 
    popUpButton.setY(t_y); 
} 

XML

<RelativeLayout 

<Button 
    android:id="@+id/popUp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/balloon_overlay_bg_selector" 
    android:text="Button" 
    android:textColor="#000000" 
    android:textSize="14dp" /> 


</RelativeLayout> 

enter image description here

+0

Вы хотите установить кнопку внизу центра ее родителя? или вы хотите, чтобы текст кнопки находился в этом ориентире? – stinepike

+0

Я хочу установить кнопку в нижней части центра. Я не хочу корректировать текст. –

ответ

1

Лучший подход может быть для вас принять вашу координату, а затем вычитают высоту кнопки с помощью button.getheight, а затем сделайте то же самое для вашей координаты x.

0
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
       LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT); 
      params.weight = 1.0f; 
      params.gravity=81; 

      button.setLayoutParams(params); 
+0

Спасибо, что ответили, но моя кнопка находится в относительном расположении, поэтому этот ответ не работает. –

+0

О, я думаю, это не было упомянуто. в любом случае попробуйте другой ответ – stinepike

+0

Я добавил изображение в редакторе. Помогает ли вам это понять? –

0

Вы можете сделать это с помощью RelativeLayout как родителя, так что проверить, что u're с использованием относительного макета ... и сделать это:

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) popUpButton.getLayoutParams(); 
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
params.addRule(RelativeLayout.CENTER_VERTICAL); 
popUpButton.setLayoutParams(params); 

Итак, есть способ, который можно переместить или изменить позицию Objet в progrmmatically

+0

Спасибо за ответ, но это устанавливает кнопку внизу родительского макета. Я пытаюсь установить опорную точку кнопок в самом нижнем центре, а не в верхнем левом углу. –

+0

Я тоже не понимаю, но думаю, что изменение гравитации родительского макета должно решить вашу проблему. –

+0

Я добавил картинку в Edit. Помогает ли вам это понять? –

Смежные вопросы