Для этого есть как минимум 2 различных способа.
1. Якорь
Если вы хотите, чтобы центр логотипа находился точно по нижнему краю TextView, используйте CoordinatorLayout в качестве прямого родительского представления логотипа и TextView, а также используйте свойства XML app:layout_anchor
и app:layout_anchorGravity
для логотипа. , Для вашего примера значение app:layout_anchor
будет идентификатором TextView, а значение app:layout_anchorGravity
будет «нижним | концом».
Обратите внимание, что вы должны иметь возможность добиться любого желаемого положения путем инкапсуляции логотипа в родительском макете, привязки родительского элемента к TextView, а затем установки полей на логотипе для его перемещения внутри прозрачного родительского элемента.
2. Отрицательные поля (да)
Android фактически поддерживает отрицательные поля, хотя, вероятно, не с ConstraintLayout. Это определенно работает с RelativeLayout, хотя! Учитывая, что вы хотите, чтобы ваш ImageView перекрывал TextView, он будет выглядеть так:
<RelativeLayout
...
<TextView
android:id="@+id/myTextView"
... />
<ImageView
android:layout_below="@+id/myTextView"
android:layout_marginTop="-30dp"
... />
</RelativeLayout>
При выполнении этого также учитывайте порядок Z. В моем примере выше ImageView будет нарисован поверх TextView, потому что он объявлен после TextView в его родительском. Если бы ImageView был объявлен первым, TextView был бы нарисован поверх него.