我一直试图在特定区域的图像上方放置一个按钮。因此,即使设备旋转或屏幕尺寸不同,按钮也将停留在图像中的特定区域。
到目前为止,我已经尝试了几件事,但是当我旋转设备然后按钮移到另一个区域时,它们似乎都没有起作用。
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>
我该如何解决?可以说,在下面的图片中,希望有一个位于眼睛上方的按钮。请帮我一些指导或参考。
答案 0 :(得分:0)
您是否尝试过使用线性布局或相对布局。 在“线性布局”中,将方向设置为“垂直”并将按钮放在上方,然后图像或u可以使用相对布局,然后在按钮中添加属性layout_alignParentTop = true。该按钮将保留在顶部。 希望这能解决您的问题。