CardView, чтобы сделать фон круга, показать овальный фон

Я следил за этим сообщением

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

  <android.support.design.card.MaterialCardView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerInParent="true"
      android:innerRadius="0dp"
      android:shape="ring"
      android:thicknessRatio="0"
      app:cardCornerRadius="24dp"
      card_view:cardElevation="0dp"
      card_view:cardMaxElevation="0dp">
    <ImageView
        android:id="@+id/close_button"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_gravity="top|end"
        android:padding="@dimen/account_menu_close_button_padding"
        android:alpha="0"
        android:background="?attr/selectableItemBackground"
        android:contentDescription="@string/og_close_icon_a11y"
        android:focusable="true"
        android:theme="@style/myStyle"
        android:visibility="gone"
        app:srcCompat="@drawable/quantum_gm_ic_close_vd_theme_24"
        />
  </android.support.design.card.MaterialCardView>

Однако я продолжаю получать: 1) овальную форму 2) белую окантовку

Как я могу исправить это оба?

введите здесь описание изображения


person Elad Benda    schedule 30.05.2019    source источник
comment
Почему бы вам не использовать плавающую кнопку действия вместо этого? Я думаю, что происходит то, что у вас есть некоторые отступы на значке, которые заставляют карту толкаться сверху/снизу. Попробуйте удалить заполнение на ImageView.   -  person Javier Mendonça    schedule 30.05.2019
comment
плавающая кнопка действия может быть прозрачной без высоты?   -  person Elad Benda    schedule 30.05.2019
comment
Ну, я никогда не пробовал, но вы определенно можете установить высоту на 0 и фон на @android:color/transparent. Но если вам нужно что-то вроде кнопки без возвышения или чего-то еще, почему бы вам не использовать ImageView с круглым рисунком в качестве фона? Это сработает.   -  person Javier Mendonça    schedule 30.05.2019
comment
@JavierMendonça мой фоновый атрибут уже заполнен   -  person Elad Benda    schedule 30.05.2019


Ответы (1)


Попробуйте так

<com.google.android.material.card.MaterialCardView
    android:layout_width="48dp"
    android:layout_height="48dp"
    android:layout_gravity="center"
    android:innerRadius="0dp"
    android:shape="ring"
    android:thicknessRatio="0"
    app:cardBackgroundColor="@color/colorAccent"
    app:cardCornerRadius="24dp"
    app:cardElevation="0dp"
    card_view:cardMaxElevation="0dp">

    <ImageView
        android:id="@+id/close_button"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_gravity="top|end"
        android:background="?attr/selectableItemBackground"
        android:contentDescription="@string/app_name"
        android:focusable="true"
        android:visibility="visible"
        app:srcCompat="@drawable/ic_close" />

</com.google.android.material.card.MaterialCardView>

ВЫВОД

введите здесь описание изображения

ВЫХОД в устройстве

введите здесь описание изображения

person AskNilesh    schedule 30.05.2019
comment
можешь объяснить разницу? и почему? - person Elad Benda; 30.05.2019
comment
лучше использовать FAB? - person Elad Benda; 30.05.2019
comment
@EladBenda да, лучше использовать FAB - person AskNilesh; 31.05.2019