Как реализовать этот макет управления в 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>
Другие вопросы по тегам