Soru Sınırlı şeffaf daire


Ben android içinde XML kullanarak sadece bir sınır ile bir daire oluşturmaya çalışıyorum:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >

<stroke android:width="1dp"
    android:color="#000000"/>

</shape>

Kullandığım kod yukarıda yayınlandı. Ancak, sağlam bir disk ve bir halka almıyorum. Çıktıyı sadece XML kullanarak ve tuvali kullanarak almak istiyorum. Neyi yanlış yapıyorum?

Teşekkürler.

DÜZENLE:  Aşağıdaki cevap sayesinde işe aldım. Heres benim son kodum:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:innerRadius="0dp"
    android:shape="ring"
    android:thicknessRatio="1.9"
    android:useLevel="false" >

    <solid android:color="@android:color/transparent" />

    <size android:width="100dp"
     android:height="100dp"/>

    <stroke android:width="1dp"
    android:color="#FFFFFF"/>

</shape>

54
2018-04-19 06:27


Menşei




Cevaplar:


Böyle bir şey dene

<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/transparent" />

    <stroke
        android:width="2dp"
        android:color="@android:color/darker_gray" />
</shape>

Güncelleme: yapıldı android:thicknessRatio="2" tam daire vermek için (Nexus 5 - Lollipop kullanarak)


135
2018-04-19 06:30



Korku veren !! harikasın. - swiftBoy
ben yaptım android:thicknessRatio="2" kapalı bir halka (Nexus 5, Lollipop) olmak - David
@David yorumu cevaba eklenmelidir. Neyse, teşekkürler;) - andrea.rinaldi
Çemberin dışındaki alan benim için şeffaf görünmüyor. - Paradox


kullan bunu işe yarayacak

<?xml version="1.0" encoding="utf-8"?>  
     <shape xmlns:android="http://schemas.android.com/apk/res/android"                                                                                                                                                     
   android:shape="oval" >

<gradient
    android:centerX=".6"
    android:centerY=".40"
    android:endColor="@android:color/transparent"
    android:gradientRadius="20"
    android:startColor="@android:color/transparent"
    android:type="radial" />

<stroke
    android:width="1dp"
    android:color="#FFFFFF" />

<size
    android:height="100dp"
    android:width="100dp" />

</shape>

21
2017-07-07 14:59





oyuk

<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
        <stroke
            android:width="1dp"
            android:color="@color/indicator_unselected" />
    </shape>

Tam

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <corners android:radius="100dp" />
    <solid android:color="@android:color/white" />
</shape>

7
2017-07-09 16:11



Bu gerçekten çalışıyor ve diğer cevaplardan daha basit, ben kullanıyorum! Teşekkürler - Juancho


Vector drawables'i kullanabiliyorsanız bunu deneyin

<vector android:height="24dp" android:viewportHeight="512.0"
    android:viewportWidth="512.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
    <path android:fillColor="#FFFFFF" android:fillType="evenOdd"
        android:pathData="M0,0L512,0L512,512L0,512L0,0ZM256,511C396.8,511 511,396.8 511,256C511,115.2 396.8,1 256,1C115.2,1 1,115.2 1,256C1,396.8 115.2,511 256,511Z"
        android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

2
2017-10-06 11:59





Android dahili değerini şeffaf olarak kullanabilirsiniz. @android:color/transparent veya kullan #0000 veya #00000000

4 haneli başlangıç ​​için ilk önce alfa için ve 8 haneli değerde ilk iki rakam alfa ile aynıydı.

Varsayılan alfa değerinden 3 haneli veya 6 basamaklı bir renk verdiğinizde, 4 basamaklı veya 8 basamaklı değerden geçerek bu renk değerinin alfa değerini ayarlayabilirsiniz.


1
2018-04-19 06:43



Merhaba Pratik, cevabınızın alfa kısmını anlamadım. XML dosyasına <solid android: color = "# 0000" /> satırını ekledim. Ama yine de aynı sonucu aldım. - Anirudh
Bu alfa renk opaklığını ayarlamak için kullanıldı. Eğer 4 0 veya 8 0'ları tamamen saydam yaparsanız, 8 0'ın değerindeki ilk 2 hanenin artışı sadece opaklığın değerini arttırır. - Pratik


<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval" >

            <stroke
                android:width="4dp"
                android:color="@color/colorPrimaryDark" />
            <corners android:radius="0dp" />
        </shape>
    </item>
    <item
        android:top="1dp"
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp">

        <shape android:shape="oval">
            <solid android:color="@color/colorRed" />
            <size android:height="@dimen/_100sdp"
                android:width="@dimen/_100sdp"></size>
        </shape>

    </item>

</layer-list>

0
2018-04-19 10:51





<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval" >

        <gradient
            android:endColor="@android:color/transparent"
            android:gradientRadius="20"
            android:startColor="@android:color/transparent" />

        <stroke
            android:width="1dp"
            android:color="#d9d9d9" />

        <size
            android:height="100dp"
            android:width="100dp" />
        </shape>
    </item>

    <item
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp">
        <shape android:shape="oval" >

            <gradient
                android:endColor="@android:color/transparent"
                android:gradientRadius="20"
                android:startColor="@android:color/transparent" />

            <stroke
                android:width="1dp"
                android:color="#b3b3b3" />

            <size
                android:height="100dp"
                android:width="100dp" />
        </shape>
    </item>
</layer-list>

0
2017-08-07 17:48