Как определить форму круга в отрисовываемом файле Android xml?
У меня возникли проблемы с поиском документации по определениям фигур в XML для Android. Я хотел бы определить простой круг, заполненный сплошным цветом в файле XML, чтобы включить его в мои файлы макетов.
К сожалению, документация на android.com не охватывает атрибуты XML классов Shape. Я думаю, что я должен использовать ArcShape, чтобы нарисовать круг, но нет никакого объяснения того, как установить размер, цвет или угол, необходимый, чтобы сделать круг из Дуги.
Ответы
Ответ 1
Это простой круг как переносимый в Android.
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#666666"/>
<size
android:width="120dp"
android:height="120dp"/>
</shape>
Ответ 2
Установите это как фон просмотра
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
android:width="1dp"
android:color="#78d9ff"/>
</shape>
![enter image description here]()
Для сплошного круга используйте:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#48b3ff"/>
</shape>
![enter image description here]()
Твердый с ударом:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#199fff"/>
<stroke
android:width="2dp"
android:color="#444444"/>
</shape>
![enter image description here]()
Примечание. Чтобы oval
фигура отображалась в виде круга, в этих примерах либо ваше представление о том, что вы используете эту фигуру в качестве фона, должно быть квадратным, либо вы должны установить свойства height
и width
тега формы равными значениям.,
Ответ 3
Код для простого круга
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<solid android:color="#9F2200"/>
<stroke android:width="2dp" android:color="#fff" />
<size android:width="80dp" android:height="80dp"/>
</shape>
Ответ 4
Посмотрите образцы Android SDK. В проекте ApiDemos есть несколько примеров:
/ApiDemos/res/drawable/
- black_box.xml
- shape_5.xml
- и т.д.
Он будет выглядеть примерно так для круга с градиентом заливки:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
<gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF"
android:angle="270"/>
</shape>
Ответ 5
Вы можете использовать VectorDrawable, как показано ниже:
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="200dp"
android:viewportHeight="64"
android:viewportWidth="64">
<path
android:fillColor="#ff00ff"
android:pathData="M22,32
A10,10 0 1,1 42,32
A10,10 0 1,1 22,32 Z" />
</vector>
Приведенный выше xml отображается как:
![enter image description here]()
Ответ 6
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<!-- fill color -->
<solid android:color="@color/white" />
<!-- radius -->
<stroke
android:width="1dp"
android:color="@color/white" />
<!-- corners -->
<corners
android:radius="2dp"/>
</shape>
Ответ 7
Вот простой circle_background.xml для предматериала:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="oval">
<solid android:color="@color/color_accent_dark" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="@color/color_accent" />
</shape>
</item>
</selector>
Вы можете использовать атрибут 'android:background="@drawable/circle_background"
в определении макета кнопки
Ответ 8
Если вы хотите круг, как это
![enter image description here]()
Попробуйте использовать код ниже:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="2"
android:useLevel="false" >
<solid android:color="@android:color/white" />
<stroke
android:width="1dp"
android:color="@android:color/darker_gray" />
</shape>
Ответ 9
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
android:width="10dp"
android:color="@color/white"/>
<gradient
android:startColor="@color/red"
android:centerColor="@color/red"
android:endColor="@color/red"
android:angle="270"/>
<size
android:width="250dp"
android:height="250dp"/>
</shape>
Ответ 10
Вы можете попробовать это -
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadiusRatio="700"
android:thickness="100dp"
android:useLevel="false">
<solid android:color="#CCC" />
</shape>
Кроме того, вы можете настроить радиус круга, регулируя android:thickness
.
![enter image description here]()
Ответ 11
Я не мог нарисовать круг внутри моего ConstraintLayout по какой-то причине, я просто не мог использовать ни один из ответов выше.
Что отлично сработало, так это простой TextView с текстом, который появляется, когда вы нажимаете "Alt + 7":
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#0075bc"
android:textSize="40dp"
android:text="•"></TextView>
Ответ 12
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<solid android:color="@color/text_color_green"/>
<!-- Set the same value for both width and height to get a circular shape -->
<size android:width="250dp" android:height="250dp"/>
</shape>
</item>
</selector>
Ответ 13
Рез /drawble/circle_shape.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<solid android:color="#e42828"/>
<stroke android:color="#3b91d7" android:width="5dp"/>
<!-- Set the same value for both width and height to get a circular shape -->
<size android:width="250dp" android:height="250dp"/>
</shape>
</item>
</selector>
![enter image description here]()
Пример в Интернете: https://code-android-example.blogspot.com/2019/07/how-to-circle-shape-in-xml-drawable-android.html
Ответ 14
Просто используйте
ShapeDrawable circle = new ShapeDrawable( new OvalShape() );