私はいくつかの問題を抱えているアンドロイドのためのXMLの形の定義のドキュメンテーションを見つけること。 XMLファイルで単色で塗りつぶされた単純な円を自分のレイアウトファイルに含めるように定義したいと思います。
残念ながら、Android.comのドキュメントにはShapeクラスのXML属性が含まれていません。円を描くには ArcShape を使うべきだと思いますが、円から円を描くために必要なサイズ、色、角度の設定方法については説明がありません。
これはAndroidのドロウアブルとしての単純な円です。
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="oval">
<solid
Android:color="#666666"/>
<size
Android:width="120dp"
Android:height="120dp"/>
</shape>
これをビューの背景として設定
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="oval">
<stroke
Android:width="1dp"
Android:color="#78d9ff"/>
</shape>
黒丸の場合:
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="oval">
<solid
Android:color="#48b3ff"/>
</shape>
ストロークで安定:
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="oval">
<solid Android:color="#199fff"/>
<stroke
Android:width="2dp"
Android:color="#444444"/>
</shape>
注 :これらの例でoval
name__図形を円として表示するには、この図形を背景として使用しているというビューを正方形にするか、またはheight
name__およびwidth
name__プロパティを設定する必要があります。タグを同じ値にします。
単純円のコード
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:shape="oval">
<solid Android:color="#9F2200"/>
<stroke Android:width="2dp" Android:color="#fff" />
<size Android:width="80dp" Android:height="80dp"/>
</shape>
Android SDKサンプルを調べてください。 ApiDemosプロジェクトにはいくつかの例があります。
/ ApiDemos/res/drawable /
グラデーションを塗りつぶした円の場合、これは次のようになります。
<?xml version = "1.0" encoding = "utf-8"?> <shape xmlns:Android = "http://schemas.Android.com/apk/res/Android" Android:shape = "oval"> <グラデーションAndroid:startColor = "#FFFF0000" Android:endColor = "#80FF00FF" Android:angle = "270" /> </shape>
以下のように VectorDrawable を使うことができます。
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:width="200dp"
Android:height="200dp"
Android:viewportHeight="64"
Android:viewportWidth="64">
<path
Android:fillColor="#ff00ff"
Android:pathData="M22,32
A10,10 0 1,1 42,32
A10,10 0 1,1 22,32 Z" />
</vector>
上記のxmlは次のようにレンダリングされます。
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="oval">
<!-- fill color -->
<solid Android:color="@color/white" />
<!-- radius -->
<stroke
Android:width="1dp"
Android:color="@color/white" />
<!-- corners -->
<corners
Android:radius="2dp"/>
</shape>
これはプレマテリアルのための簡単なcircle_background.xmlです。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_pressed="true">
<shape Android:shape="oval">
<solid Android:color="@color/color_accent_dark" />
</shape>
</item>
<item>
<shape Android:shape="oval">
<solid Android:color="@color/color_accent" />
</shape>
</item>
</selector>
ボタンのレイアウト定義で属性'Android:background="@drawable/circle_background"
を使用できます。
circle がこのようにしたい場合
以下のコードを使ってみてください。
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:innerRadius="0dp"
Android:shape="ring"
Android:thicknessRatio="2"
Android:useLevel="false" >
<solid Android:color="@Android:color/white" />
<stroke
Android:width="1dp"
Android:color="@Android:color/darker_gray" /></shape>
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="oval">
<stroke
Android:width="10dp"
Android:color="@color/white"/>
<gradient
Android:startColor="@color/red"
Android:centerColor="@color/red"
Android:endColor="@color/red"
Android:angle="270"/>
<size
Android:width="250dp"
Android:height="250dp"/>
</shape>
あなたはこれを試すことができます -
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="ring"
Android:innerRadiusRatio="700"
Android:thickness="100dp"
Android:useLevel="false">
<solid Android:color="#CCC" />
</shape>
また、Android:thickness
を調整することによって円の半径を調整することができます。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
<shape Android:shape="oval">
<solid Android:color="@color/text_color_green"/>
<!-- Set the same value for both width and height to get a circular shape -->
<size Android:width="250dp" Android:height="250dp"/>
</shape>
</item>
</selector>
res/drawble/circle_shape.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
<shape Android:shape="oval">
<solid Android:color="#e42828"/>
<stroke Android:color="#3b91d7" Android:width="5dp"/>
<!-- Set the same value for both width and height to get a circular shape -->
<size Android:width="250dp" Android:height="250dp"/>
</shape>
</item>
</selector>
オンラインの例: https://code-Android-example.blogspot.com/2019/07/how-to-circle-shape-in-xml-drawable-Android.html
どういうわけか私はConstraintLayoutの中に円を描くことができませんでした、私はちょうど上の答えのどれも使うことができませんでした。
あなたが "Alt + 7"を押すと、完全にうまくいったのは、テキストが出てくる単純なTextViewです。
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textColor="#0075bc"
Android:textSize="40dp"
Android:text="•"></TextView>