Как реализовать этот макет управления в Android?
У меня есть несколько предметов, которые я хочу показать. Все предметы имеют заголовок и подзаголовок. Когда я думаю о том, что это очень похоже на пузыри в WhatsApp
или же Facebook
, Я предполагаю, что они реализованы как 9-patch-drawables.
Мой фон похож на круг и прямоугольник в сочетании с двумя TextView
с впереди.
Мои подходы:
- 9-patch-drawables: я могу добиться дизайна, но мне нужно поддерживать несколько цветов фона. И изображения очень негибки.
- рисуем
xml
: когда я создаю чертеж, я могу определить овал или прямоугольник с углами в виде фигур. Но форма масштабируется. Так что на самом деле круговая часть слева не совсем круглая.
Теперь я посмотрел на AnalogClock
который действительно идеально круглый, но он наследует от View
и делает измерения и рисования по коду.
Поэтому я предполагаю, что должен создать контроль самостоятельно. Или есть другие подходы?
Требования:
- когда я меняю какую-либо из сторон, он не должен искажаться, но должен масштабироваться
- Я должен быть в состоянии изменить цвет фона в коде
- и, конечно, я должен быть в состоянии установить тексты
Любые намеки для меня, как этого добиться?
1 ответ
Поместите этот Relativelayout в свой.xml
<RelativeLayout
android:layout_width="220dp"
android:layout_height="90dp"
android:background="@drawable/custom_button" >
</RelativeLayout>
custom_button.xml - добавьте его в res > Drawable
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
android:topLeftRadius="100dp"
android:topRightRadius="0dp"
android:bottomLeftRadius="100dp"
android:bottomRightRadius="0dp"
/>
<solid
android:color="#4F4F4F"
/>
<size
android:width="220dp"
android:height="90dp"
/>
</shape>