Смещение наложения в Android

#android

#Android

Вопрос:

У меня есть ImageView с фоном и src. Размер фона (для xxxhdpi) 111×111, а размер src (опять же, для xxxhdpi) равен 27×34.

Я бы хотел, чтобы изображение src отображалось в правом верхнем углу и имело правильный размер (меньше), но сейчас я вижу, что оно центрируется и расширяется до размера фонового изображения.

Нужно ли мне сделать src того же размера, что и фон, и, возможно, добавить прозрачный фон в нижний левый угол?

Вот что у меня есть на данный момент.

 <ImageView android:layout_width="80dp"
            android:layout_height="80dp"
            android:id="@ id/autoButton"
            android:background="@drawable/automode"
            android:src="@drawable/lock_icn"
            android:layout_marginBottom="15dp"
            android:textColor="@color/grey_400"
            android:text="@string/auto_mode"
    />
  

Спасибо.

Комментарии:

1. Я думаю, что это было бы невозможно с одним ImageView. Потому что лучшее, что вы можете получить, это android:scaleType=»center», но тогда он появится в центре.

2. Вам нужно обернуть ImageView в макет (например, FrameLayout), а затем установить фон FrameLayout с вашим фоновым изображением, установить размер макета вашего ImageView в right и width / height в wrap_content

3. Я думаю, что это хорошая идея @MuddassirAhmed. Я попробую это сделать. Лучше, чем создавать новые иконки.

Ответ №1:

В итоге получилось очень похоже на упомянутое выше. Вот это для полноты картины.

      <FrameLayout
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginBottom="15dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/automode"
            >

        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="@string/auto_mode"
                android:textColor="@color/grey_400"
                android:textSize="17sp" />

        <ImageView android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_gravity="end"
                android:id="@ id/deleteButton"
                android:src="@drawable/lock_icn"
                />
    </FrameLayout>