Кликабельная картинка в приложении android

195
09 октября 2018, 10:40

Всем привет. Есть 4 картинки с разными схемами автомобиля как во вложении. как можно обработать клик на колесо? и поменять цвет колеса?

Answer 1

4 колеса должны быть например четырьмя кнопками. Для начала вы берете картинку с колесом, делаете дубликат, одно оставляете в том виде, в каком оно есть, а другое делаете, например с красным оттенком. Затем помещаете эти две картинки в папку Drawable и там же создаете файл, например: wheel_color_condition_state и в селекторе делаете так:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/wheel_color_red" android:state_pressed="true" />
<item android:drawable="@drawable/wheel_color_standard" android:state_pressed="false" />
</selector>

`Ну и в макете 4х кнопок в фоном задаете этот файл:

android:background="@drawable/wheel_color_condition_state"

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

Answer 2

Вариант 1:

Положить сверху кнопку, которая выглядит точно так же. При нажатии менять картинку методом setBackground(Drawable bg)

wheel_1.setBackground(R.drawable.colored_wheel_1)

Вариант 2:

Сразу сверху положить кнопку второго цвета и сделать ее прозрачной:

<Button
android:id="@+id/wheel_1"
android:background="@drawable/wheel_1" 
android:visibility="invisible"/>

или

<Button
android:id="@+id/wheel_1"
android:background="@android:color/transparent">

При нажатии ставить прозрачность на visible:

wheel_1.setVisibility(VISIBLE)

Разумеется, для разных колес нужные отдельные картинки (задние одинаковые, можно обойтись и общими).

READ ALSO
Как работать с переменными в разных окружениях?

Как работать с переменными в разных окружениях?

Проблема - несколько окружений, надо протестировать функционал, для прогона теста требуется userIdПользователь один и тот же, но на тесте у него...

158
Shared Preferences не работает

Shared Preferences не работает

Shared Preferences не работает

241
Связь между сервисами

Связь между сервисами

Допустим у меня есть 2 сервиса: один достает картинку с бд, второй принимает картинку и говорит что на ней изображеноТак второй сервис должен...

227
Вызов одного класса из другого

Вызов одного класса из другого

Подскажите пожалуйстаУ меня есть два файла: activity_main(

175