私はこの質問は非常に簡単ですが、どのようにAndroid StudioプロジェクトのXMLでこの形を作成できますか?Android XMLでこの図形(添付写真)を作成していますか?
私は矩形を作成し、それから、半円形部分を除去するが、XMLでその効果を達成することは非常に困難であると考えられることができますように思えます。誰もこれを前にしたことがありますか?
私はこの質問は非常に簡単ですが、どのようにAndroid StudioプロジェクトのXMLでこの形を作成できますか?Android XMLでこの図形(添付写真)を作成していますか?
私は矩形を作成し、それから、半円形部分を除去するが、XMLでその効果を達成することは非常に困難であると考えられることができますように思えます。誰もこれを前にしたことがありますか?
純粋xml
ドローアブルと、このような背景の作成をXMLに変換するSVG後にオンラインツールhttp://www.online-convert.com/を変換使用したCAは、常にトリッキーが、可能です。
xml
に必要なボタンを作成しました。
circle.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<!-- inset - moves circle to the left-->
<inset android:insetLeft="-150dp">
<shape android:shape="ring"
android:thicknessRatio="7"
android:innerRadius="0dp"
android:useLevel="false"
>
<stroke android:width="2dp" android:color="#000000"/>
<solid android:color="#ffffff"/>
</shape>
</inset>
</item>
</selector>
custom_button_default.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#00ff00"/>
<stroke
android:color="#000000"
android:width="2dp"/>
</shape>
</item>
<item android:drawable="@drawable/circle" />
</layer-list>
custom_button_pressed.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#dddddd"/>
<stroke
android:color="#000000"
android:width="2dp"/>
</shape>
</item>
<item android:drawable="@drawable/circle" />
</layer-list>
:あなたの
drawable
フォルダにこのファイルを追加します。
custom_button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/custom_button_pressed" />
<item android:drawable="@drawable/custom_button_default"/>
</selector>
設定custom_button_selector
描画可能layout
におけるビューの背景として:
<Button
android:layout_width="150dp"
android:layout_height="100dp"
android:id="@+id/button"
android:background="@drawable/custom_button_selector"
/>
おそらくlayout
に円insetLeft
値とボタンwidth
、height
を調整する必要があります。この変数をvalues/dimens.xml
で定義するのが良いでしょう。
デフォルト状態:
押された状態:
私はネクサス5とネクサス7上でそれをテストしてみた - ボタンの背景が同じに見えます。
Nice!ただし、Nexusデバイスのテストには注意が必要です。彼らは常に正しく動作します:Pこれは唯一の問題は、背景が透明でないことです。これは単色でなければなりません。 –
はい、そうです。サークル部分の透明度を達成することは少し難しくなります。また、Nexus以外のデバイスでも動作することを確認するために、タスクを完了した後、Samsungデバイスのすべてをテストしています:) –
こんにちはあなたはアンドロイドのファイルにこのサイトhttp://inloop.github.io/svg2android/
"しかし、その効果をXMLで達成することは非常に難しいようです。"はい、同意します。カスタムShapeクラスで9パッチの描画可能かShapeDrawableを使用できます。 – pskink