Закругленные углы в Android ImageButton не работают

Что-то не так с моим кодом? round_corner.xml (ставил в drawable)

  <?xml version = "1.0" encoding = "utf-8"?>

    <shape xmlns:android = "http://schemas.android.com/apk/res/android"
    android:shape = "rectangle" >
    <solid android:color = "#FFFF0F" />
    <corners android:radius = "30dp" />
    </shape>

Я думаю, что не работает код в моем imageButton

    <LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:app = "http://schemas.android.com/apk/res-auto"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:orientation = "vertical"
    android:padding = "5dp">

    <ImageButton
        android:id = "@+id/my_button"
        android:layout_width = "match_parent"
        android:layout_height = "170dp"
        android:layout_gravity = "center"
        android:background = "@drawable/round_corner"
        android:src = "@drawable/my_pic"/>

    </LinearLayout>

Это не дает мне никаких ошибок. Это просто не сделало мой образ округлым. Любые идеи?

Вы хотите обойти кнопку с изображением?

Faiz Mir 19.09.2018 08:50

возможно дубликат stackoverflow.com/questions/21633637/…

Aiko West 19.09.2018 08:51

да но это не сработало

user_22 19.09.2018 08:51

Возможный дубликат Как сделать ImageView с закругленными углами?

Manohar 19.09.2018 08:52

@ Декстер: я пробовал, но это не сработало, поэтому я спросил здесь.

user_22 19.09.2018 08:53

ваше изображение покрывает весь ImageButton?

Faiz Mir 19.09.2018 08:53

@ user_22, который не будет работать, проверьте ответы на вопрос, который я связал

Manohar 19.09.2018 08:53

@redman: я видел этот пост и пробовал, но у меня не получается. так что просто посмотрите мой код и посмотрите, что с ним не так

user_22 19.09.2018 08:54

@ user_22 нет, вы еще не видели, применение формы не сделает ваш рисунок скругленным. Попробуйте другой способ, упомянутый в моей предыдущей ссылке, я бы предложил это решение stackoverflow.com/a/40150715/6478047

Manohar 19.09.2018 08:58

@FaizMir: да. какие решения?

user_22 19.09.2018 08:58

Вы пробовали запустить приложение или смотрели только предварительный просмотр Android Studio?

Vladyslav Matviienko 19.09.2018 08:59

да подожди ......

Faiz Mir 19.09.2018 08:59

@ user_22 проверьте мой ответ

Faiz Mir 19.09.2018 09:13
0
13
1 943
2

Ответы 2

Я предлагаю вам использовать CardView вместо кнопки изображения

Вы можете добиться того же эффекта с помощью CardView с помощью этого кода.

<android.support.v7.widget.CardView
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:background = "@drawable/my_pic"
        app:cardCornerRadius = "30dp"/>

Сначала создайте shape.xml

    <shape xmlns:android = "http://schemas.android.com/apk/res/android"
    android:shape = "rectangle" >
    <solid android:color = "#FFFF0F" />
    <corners android:radius = "30dp" />
    </shape>

используйте этот xml:

<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:app = "http://schemas.android.com/apk/res-auto"
    android:id = "@+id/card_view"

    android:layout_width = "match_parent"
    android:layout_height = "120dp"
    android:layout_gravity = "center"

    android:layout_margin = "8dp"
    android:background = "@drawable/shape"

    android:elevation = "4dp">

    <android.support.v7.widget.CardView
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:layout_gravity = "center"
        android:elevation = "4dp"
        app:cardCornerRadius = "8dp">

        <ImageButton
            android:id = "@+id/thumbnaill"
            android:layout_width = "match_parent"
            android:layout_height = "match_parent"
            android:layout_gravity = "left"
            android:background = "@drawable/maxresdefault"
            android:scaleType = "fitXY"
            />
    </android.support.v7.widget.CardView>
</LinearLayout>

Вот ваш результат :) Обратите внимание, что он не будет показывать радиус при предварительном просмотре Xml, запустите приложение, в котором оно появится

Output

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