Заполните прозрачную часть чертежа определенным цветом

У меня есть это прозрачное изображение, которое я хочу залить определенным цветом внутри прозрачной части.

Заполните прозрачную часть чертежа определенным цветом

Мне удалось заполнить это изображение определенным цветом, который я хочу, но проблема в том, что этот цвет также заполняет внешнюю часть ImageButton.

Вот образец:

Заполните прозрачную часть чертежа определенным цветом

Как удалить лишний красный цвет за пределами чертежа?

Вот мой нынешний xml:

<ImageButton
    android:id = "@+id/button_scan"
    android:layout_width = "0dp"
    android:layout_height = "wrap_content"
    android:layout_marginRight = "4dp"
    android:layout_weight = "0.25"
    android:src = "@drawable/ic_scan"
    android:background = "@color/aub_red"
    android:backgroundTintMode = "screen"
    android:textColor = "@color/edittext_text" />

Попробуйте удалить это: android:background = "@color/aub_red"

Ümañg ßürmån 29.10.2018 07:13

Потому что ваш размер для рисования меньше, чем ImageButton.

Aditya 29.10.2018 07:15

@ Ümañgßürmån, тогда как я могу заполнить цветом прозрачную часть чертежа?

user10573165 29.10.2018 07:15

@netflixspotify: попробуйте установить android:layout_width = "wrap_content"

karan 29.10.2018 07:17

Ваше изображение квадратное, а ваша кнопка прямоугольная. @Netflixspotify Используйте кнопку квадратной формы.

Ümañg ßürmån 29.10.2018 07:20
0
5
71
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

попробуй построить, добавив тезисы

android:adjustViewBounds = "true"
android:scaleType = "fitXY"

если на соотношение сторон изображения влияет указанное выше изменение, вы можете использовать

android:scaleType = "fitCenter"

Понятно! Спасибо!

user10573165 29.10.2018 08:04

@netflixspotify приятно это слышать. Для меня будет хорошо, если вы сможете проголосовать и за это.

PushpikaWan 29.10.2018 08:09

Похоже, что родительский элемент - это LinearLayout с некоторой «весовой суммой», поэтому ширина ImageButton является неопределенной.

Вы можете создать макет кадра, который будет содержать эту кнопку изображения и другой макет (с той же шириной и высотой, что и кнопка изображения), лежащий в основе кнопки изображения. Что-то вроде этого:

    <FrameLayout
        android:layout_width = "0dp"
        android:layout_weight = "0.25"
        android:layout_height = "wrap_content">

    <View
        android:layout_width = "match_parent"
        android:background = "@color/aub_red"
        android:layout_height = "match_parent"/>

    <ImageButton
        android:id = "@+id/button_scan"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:layout_marginRight = "4dp"
        android:backgroundTintMode = "screen" />
</FrameLayout>

Другие вопросы по теме