如何将按钮放在图像中特定区域的顶部

时间:2019-01-09 17:26:19

标签: android

我一直试图在特定区域的图像上方放置一个按钮。因此,即使设备旋转或屏幕尺寸不同,按钮也将停留在图像中的特定区域。

到目前为止,我已经尝试了几件事,但是当我旋转设备然后按钮移到另一个区域时,它们似乎都没有起作用。

1。。我尝试使用特定的坐标绘制一个矩形,但是在设备旋转时,该矩形将移动到另一个区域。下面是代码:

ArrayList<Rect> mAreas = new ArrayList<>();
mAreas.add(new Rect(0,0,200,200));
mAreas.add(new Rect(300,0, 500, 300));

mImageView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
    for (final Rect cRect : mAreas) {
        if (cRect.contains(event.getX(), event.getY())) {
        Toast.makeText(getContext(), "AREA TOUCHED!!", Toast.LENGTH_SHORT).show();
        return true;
        }
    }
    return false;
    }
});

2。也尝试了约束布局,然后按钮再次移至另一个位置:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <ImageView
    android:id="@+id/imgvw4"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/cartoon"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"/>
    <Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/button_4"
    app:layout_constraintTop_toTopOf="@+id/imgvw4"
    app:layout_constraintBottom_toBottomOf="@+id/imgvw4"
    app:layout_constraintLeft_toLeftOf="@+id/imgvw4"
    app:layout_constraintRight_toRightOf="@+id/imgvw4"
    app:layout_constraintVertical_bias="0.25"
    app:layout_constraintHorizontal_bias ="0.5"  />
</android.support.constraint.ConstraintLayout>

Screen shot- when using constraintLayout

我该如何解决?可以说,在下面的图片中,希望有一个位于眼睛上方的按钮。请帮我一些指导或参考。

given image

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用线性布局或相对布局。 在“线性布局”中,将方向设置为“垂直”并将按钮放在上方,然后图像或u可以使用相对布局,然后在按钮中添加属性layout_alignParentTop = true。该按钮将保留在顶部。 希望这能解决您的问题。