2016-09-14 8 views
0

Хороший день. Я хочу нарисовать прямоугольник как вид, но нижняя часть должна быть изогнута. Я не хочу применять фоновое изображение, подобное этому, или использовать любые виды, потому что, если я использую просмотреть и установить фон, часть кривой все равно будет иметь невидимое пустое пространство, и я не смогу прикрепить другое изображение кривой к нижней кривой пользовательского вида. Так как я должен нарисовать прямоугольник с нижней изогнутой линией и использовать его как чтобы установить любой цвет фона, который я хочу?Draw Rectangle View with curve bottom В Android

Уведомление: я слышал что-то и читал о методах android quadTo() и cubicTo(), но у меня нет понятия, как их использовать, я имею в виду, что я ничего не понял из документов .... Так что я пришел сюда за помощью.

В идеале вместо такого описания вы можете увидеть, чего я действительно хочу достичь из изображения ... Это панель инструментов или панель действий или что-то еще, но я должен сделать такую ​​вещь ... У меня нет никаких идей. (Кстати, вы можете заметить, что изображение тоже изогнуто сверху ... Я тоже должен это сделать, и я считаю, что могу сделать это, нарисовав bitmap.meanwhile, но я все еще не в состоянии сделать какой-либо из изображение деталей в андроидном представлении.) enter image description here

ответ

1

Просто играйте с овальными значениями для получения желаемого результата.

curve_toolbar_bg.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"/> 
    </item> 
    <item 
     android:bottom="0dp" 
     android:left="-100dp" 
     android:right="-100dp" 
     android:top="-80dp"> 
     <shape android:shape="oval"> 
      <solid android:color="@color/colorPrimary" /> 
     </shape> 
    </item> 
</layer-list> 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="0dp" 
     android:layout_height="?android:attr/actionBarSize" 
     android:background="@drawable/rounded_corner" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintVertical_bias="0.0"> 

    </android.support.v7.widget.Toolbar> 
</android.support.constraint.ConstraintLayout> 

Curve shape toolbar

2

Эй, пройти this link. Это поможет вам сделать нижнюю форму вашего требуемого вида.

+0

я afaraid не может помочь обусловленно, если я установить нижнюю таким образом, то, как я suppos прикрепить изогнутое изображение на дне его? Как и в приведенном выше изображении? Обратите внимание на то, что вид будет иметь границы –

+0

Для того, чтобы нижнее изображение просто было установлено в качестве фона для вас r, а затем добавить над ним макет заголовка. Из-за этого вам не нужно округлять нижнее изображение. это что-то для вас? –

+0

Это хорошая точка, но некоторая часть изображения будет потеряна ... главным образом верхняя часть ... –