Я создал чертежи в форме круга, которые содержат значки png. В соответствии с рекомендациями по материалам Android диаметр круга составляет 40 dp, а значок — 24 dp. Первоначально я не устанавливал никаких значений для левого, правого, верхнего и нижнего, так как предполагал, что внутренний элемент значка останется 24dp. Однако он изменяет размер. Затем я попытался использовать свойства ширины и высоты, чтобы установить его на 24dp, что, казалось, работало в предварительном просмотре в AS, но не повлияло на планшет. Наконец, я установил значения сверху, снизу, слева и справа, как показано на рисунке. Я использую 8dp как: (40-24)/2 = 8.
Проблема в том, что значок внутри круга выглядит размытым, как будто его размер был изменен, но я не знаю, как с этим справиться. Возможно, есть лучший способ разместить иконку внутри круга. В конце концов, это очень распространенная дизайнерская практика.
Я поместил фактическую иконку рядом с кругом на прикрепленном изображении для сравнения, но, к сожалению, из-за сжатия изображения трудно определить разницу в четкости, но поверьте мне на слово, изображение справа выглядит как вектор, как и один в ФАБе.
круг_сетка.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="@color/colorPrimary"/>
<size
android:width="40dp"
android:height="40dp"/>
</shape>
</item>
<item android:drawable="@drawable/ic_grid_on_white_24dp"
android:top="8dp"
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:gravity="center"/>
</layer-list>
фрагмент.xml
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/screen_edge_margin"
android:layout_marginStart="@dimen/screen_edge_margin"
android:src="@drawable/circle_grid" />