それはあなたの円弧の形状のための要件が何であるかを完全には明らかではないのですが、あなたはVectorDrawableを使用して、上記実現できます。 (RES /描画可能で/)
arc.xml
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="223dp"
android:height="237dp"
android:viewportWidth="223"
android:viewportHeight="237">
<path
android:fillColor="#757491"
android:strokeWidth="1"
android:pathData="M44,3 L0,228 C0,228 68,239 114,236 C151,236 223,221 223,221 L197,0
C197,5.68434189e-14 158,11.7434499 120,11 C82,10.2565501 44,3 44,3 Z" />
</vector>
その後、あなたは上記の持っているように:
<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/arc">
</LinearLayout>
VectorDrawables(APIを21+)を使用する場合、プラットフォームの制限があることに注意したり、以前のAPIレベルをサポートする必要がある場合は、機能をバックポートするサポートライブラリを使用することができます。
私はどのように上記のコードを作成しましたか?私はベクトルパッケージ(スケッチ/イラストレーター/等)の形状をトレースし、それをsvg
ファイルとしてエクスポートしました。私はhttps://inloop.github.io/svg2android/という非常に便利なツールを使ってVectorDrawableコードに変換しました。
あなたはよりダイナミックな何かが必要ならば、私は個人的にちょうどJavaでカスタムDrawable
を作成し、Canvas
にPath
を使用して描画していますが、あなたがこれを行うにはしたくない示すことになります。