2014-02-11 4 views
2

У меня есть несколько элементов, которые я хочу отобразить. Все элементы имеют заголовок и субтитры. Когда я думаю, что это очень похоже на пузыри в WhatsApp или Facebook. Я предполагаю, что они реализованы как 9-patch-drawables.Как реализовать этот макет управления в Android?

Мой фон похож на круг и прямоугольник в сочетании с двумя TextView s спереди.

sample

Мои подходы:

  • 9-патч-вводимого коэффициента: я могу достигнуть дизайна, но я должен поддерживать несколько фоновых цветов. И изображения очень негибкие.
  • drawable xml: Когда я создаю drawable, я могу определить овал или прямоугольник с углами как фигуры. Но масштаб формы. Так что на самом деле часть круга слева не очень круглая.

Теперь я должен был смотреть на AnalogClock, который на самом деле является идеально круглым, но он наследует от View и делает измерения и картины кода.

Поэтому я предполагаю, что мне нужно создать элемент управления самостоятельно. Или есть другие подходы?

Требования:

  • не должны искажать, когда я изменить какие-либо из сторон, но должны масштабироваться
  • я должен быть в состоянии изменить цвет фона в коде
  • и, конечно, должны иметь возможность устанавливать тексты

Любые подсказки для меня, как достичь этого?

+0

Смотрите это, если это может помочь вам. https://github.com/MostafaGazar/CustomShapeImageView –

+0

Хорошо, спасибо за подсказку. Эта библиотека предназначена для формирования изображений. Я попробую. –

ответ

0

Поместите этот RelativeLayout в вашем .xml

<RelativeLayout 
    android:layout_width="220dp" 
    android:layout_height="90dp" 
    android:background="@drawable/custom_button" > 
</RelativeLayout> 

custom_button.xml - добавьте его в разрешении> 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> 
Смежные вопросы