Android 处于absulote位置的绘图按钮

Android 处于absulote位置的绘图按钮,android,android-layout,android-canvas,android-imageview,android-button,Android,Android Layout,Android Canvas,Android Imageview,Android Button,我正在试着做一个门内地图,上面有按钮。我设计了地图,我想把按钮放在上面,如图所示: 因此,当用户单击按钮时,我将转到另一个活动 我的问题是如何将按钮放在这些绝对位置,并使其适用于所有屏幕选项 我不知道从哪里开始,只有一个想法或建议可以挽救我的一天。:) 您可以使用版面边距(左、右、上、下)或使用绝对版面()设置按钮位置 例如: 此外,为了保持按钮在其他分辨率上的位置,使用dip/dp单元代替px。 检查一下这个文件, 这是“打开新活动”的代码: public void onclick(){i

我正在试着做一个门内地图,上面有按钮。我设计了地图,我想把按钮放在上面,如图所示:

因此,当用户单击按钮时,我将转到另一个活动

我的问题是如何将按钮放在这些绝对位置,并使其适用于所有屏幕选项


我不知道从哪里开始,只有一个想法或建议可以挽救我的一天。:)

您可以使用版面边距(左、右、上、下)或使用绝对版面()设置按钮位置

例如:

此外,为了保持按钮在其他分辨率上的位置,使用dip/dp单元代替px。 检查一下这个文件,
这是“打开新活动”的代码:

public void onclick(){intent i = new intent(MainActivity.this,activity.class);
星触觉(i)}

这是按钮的代码:

<Button
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|top"
android:onClick="onclick"
/>

在我看来,为这些按钮使用绝对位置不是一个好的做法,因为处理不同的屏幕尺寸会非常困难。另一方面,在我看来,使用百分比头寸可能是更好的解决方案。例如:

按钮#1:

  • 最高:20%
  • 左:35%
按钮#2

  • 最高:0%
  • 左:80%
如果您同意这种方式,可以从
FrameLayout
开始,并使用
LayoutParams
将左上边距应用于按钮。例如,对于按钮#1,您可以编写:

int frameWidth = frameLayout.getWidth();
int frameHeight = frameLayout.getHeight();    

Button button = new Button(context);
FrameLayout.LayoutParams p = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
p.leftMargin = frameWidth * (percentageLeft / 100);
p.topMargin = frameHeight * (percentageTop / 100);
button.setLayoutParams(params);

frameLayout.addView(button, p);

我改变了PIC,现在中间的按钮,不是正好在中间,它应该在林之间的交叉点上,所以不能用百分比表示,我可能需要画它们。canvas@MBH您可能还需要以百分比值来定位这些行,因此现在可以对所有元素使用百分比位置。还要注意的是,所有绝对位置都可以除以框宽和框高,以百分比表示。这对我的情况不起作用,因为按钮是根据图片中矩形的线条放置的。我的问题不是如何开始另一项活动,它是关于如何将按钮精确地放置在imageview或位图上我想要的位置