Заполните прозрачную часть рисунка определенным цветом - PullRequest
0 голосов
/ 29 октября 2018

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

image

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

Вот пример:

image

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

Вот мой текущий 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" />

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Похоже, что родительский объект - это 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>
0 голосов
/ 29 октября 2018

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

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

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

android:scaleType="fitCenter"
...