0

我是 android 的菜鸟,我在尝试以编程方式从底部/中心点而不是默认的顶部/左侧定位按钮时遇到问题。我的按钮底部有一个箭头,我想将位置设置为箭头的尖端。任何帮助是极大的赞赏。

我的代码

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>

在此处输入图像描述

4

3 回答 3

1

最好的方法可能是您获取 y 坐标,然后使用 button.getheight 减去按钮的高度,然后对 x 坐标执行相同操作。

于 2013-05-12T04:02:49.143 回答
0
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
            params.weight = 1.0f;
            params.gravity=81;

            button.setLayoutParams(params);
于 2013-05-10T20:18:00.213 回答
0

您可以使用 relativeLayout 作为父级来执行此操作,因此请检查您是否使用了相对布局...并执行此操作:

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

因此,您可以通过编程方式移动或更改对象的位置

于 2013-05-10T20:18:39.120 回答