使用约束布局将图像放置在另一图像的左上方

时间:2019-01-12 15:31:30

标签: android android-layout android-constraintlayout xml-layout

我正在尝试使用约束布局将图标放置在图像的左上方,但需要从其侧面的中心偏移。就像在图片中一样:

这是到目前为止我得到的:

This is what I've got so far

这是最终目标:

This is the end goal

这是我的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@color/grey_500">

    <ImageView
        android:id="@+id/iv_landscape_art"
        android:layout_width="240dp"
        android:layout_height="150dp"
        android:layout_marginTop="48dp"
        android:elevation="2dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        android:background="@android:color/white"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>

    <ImageView
        android:id="@+id/iv_sold_icon"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:adjustViewBounds="true"
        android:background="@color/colorPrimary"
        android:elevation="4dp"
        android:scaleType="fitXY"
        app:layout_constraintTop_toTopOf="@+id/iv_landscape_art"
        app:layout_constraintStart_toStartOf="@id/iv_landscape_art"
        app:layout_constraintEnd_toStartOf="@+id/iv_landscape_art"
        app:layout_constraintBottom_toTopOf="@+id/iv_landscape_art"/>

我该怎么做?

1 个答案:

答案 0 :(得分:3)

从较大正方形的左上角偏移较小正方形的最简单方法是应用X和Y平移。将以下内容添加到较小正方形的XML中,以了解我的意思。

android:translationX="10dp"
android:translationY="10dp"

偏移较小正方形的另一种方法是将Space小部件放置在较大正方形的左上角,并使Space 48dp的边长。现在,将较小正方形的右侧和底部限制为Space小部件的右侧和底部。