Помещение изображения поверх кнопки для эстетики, которое не влияет на значение кликабельности кнопки ниже - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть кнопка, которая принимает в качестве ввода текстовый атрибут кнопки self. Мне нужно украсить эту кнопку изображением, которое покрывает часть кнопки. Если я сделаю это, я ожидаю, что все еще смогу щелкнуть по поверхности кнопки, но это не так, потому что ImageView над кнопкой не активируется. Я хочу, чтобы ImageView или View (или что-то еще) было по эстетическим соображениям сверху кнопки, но это полностью игнорируется когда я нажимаю на нее, она будет выглядеть так, как будто ее не существует, если принять за щелчок значение кнопки ниже, чтобы я мог щелкнуть всю поверхность кнопки, воспринимая изображение сверху, принимая только ввод кнопки

<android.support.constraint.ConstraintLayout
android:id="@+id/ordinateur"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
app:layout_constraintBottom_toBottomOf="parent">

<Button
    android:layout_width="0dp"
    android:layout_width="wrap_content"
    android:id="@+id/numer_een"
    android:background="@drawable/le_click"
    android:layout_marginEnd="4dp"
    android:paddingBottom="24dp"
    android:text="1"
    android:onClick="ici"
    app:layout_constraintEnd_toStartOf="@+id/contraint1"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@+id/constraint2">

</Button>
//here an image

</android.support.constraint.ConstraintLayout>

Ответы [ 2 ]

2 голосов
/ 02 апреля 2019

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

1 голос
/ 01 апреля 2019

А использование ImageButton невозможно или что вы хотите, я полагаю?

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

android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"

и добавьте прослушиватель кликов в ваш ImageView, это идея?

((ImageView)findViewById(R.id.image)).setOnClickListener(this);
...