development IDE preview
で半円の背景を作成しようとしますが、エミュレータで起動すると機能しません。
ここに私の形状コードがあります:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:height="50dp">
<shape>
<solid Android:color="@color/colorAccentDark" />
</shape>
</item>
<item Android:top="-500dp" Android:bottom="0dp" Android:left="-100dp" Android:right="-100dp">
<shape>
<corners Android:radius="500dp" />
<solid Android:color="@color/colorAccentDark" />
</shape>
</item>
</layer-list>
そして、ここに私のレイアウトコードがあります:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/background_profile"
Android:layout_weight="1">
<de.hdodenhof.circleimageview.CircleImageView
Android:id="@+id/profile_avatar"
Android:layout_width="100dp"
Android:layout_height="100dp"
Android:src="@drawable/ic_default_avatar"
Android:layout_centerHorizontal="true"
Android:layout_marginTop="50dp"/>
<TextView
Android:id="@+id/profile_name"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerHorizontal="true"
Android:layout_below="@id/profile_avatar"
Android:layout_marginTop="20dp"
Android:textColor="@color/neutralWhite"
Android:textStyle="bold"
Android:textSize="18sp"
Android:text="Avatar Ang"/>
</RelativeLayout>
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_weight="4.04">
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Hello Android!"/>
</RelativeLayout>
</LinearLayout>
多分それを処理する他の微調整はありますか?ありがとうございました
Xmlから半円を作成することはできません。適切なマージンとパディングのある円を使用して、探しているものを達成できます。
円形状の.xmlファイルを使用できます。次のような固定サイズの円を作成します。
例:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="oval"
Android:useLevel="false" >
<solid Android:color="#006AC5" />
<size
Android:height="50dp"
Android:width="50dp" />
</shape>
これを試すことができます:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<solid Android:color="#900021df"/>
<size
Android:width="10dp"
Android:height="5dp"/>
<corners
Android:bottomLeftRadius="20dp"
Android:bottomRightRadius="20dp"/>
</shape>
この形を与えます:
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>
これを試して。グラデーション部分を削除すると、希望どおりに表示されます。
<item>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<solid Android:color="#00B0EA" />
</shape>
</item>
<item
Android:bottom="400dp"
Android:left="-100dp"
Android:right="-100dp"
Android:top="-200dp">
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="oval">
<gradient
Android:angle="90"
Android:endColor="#65FFFFFF"
Android:startColor="#65FFFFFF" />
</shape>
</item>
<item
Android:bottom="402dp"
Android:left="-100dp"
Android:right="-100dp"
Android:top="-280dp">
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="oval">
<solid Android:color="#FFFFFF" />
</shape>
</item>
Backgournd.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<solid Android:color="#FFFFFF" />
</shape>
</item>
<item
Android:bottom="410dp"
Android:left="-100dp"
Android:right="-100dp"
Android:top="-300dp">
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="oval">
<solid Android:color="#7181A1" />
</shape>
</item>
</layer-list>
Output like