2013-04-19 51 views
52

tôi đang cố gắng để tạo ra một vòng tròn với chỉ một biên giới sử dụng XML trong Android:vòng tròn trong suốt với biên giới

<?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> 

Mã Tôi đã sử dụng được đăng tải trên. Tuy nhiên, tôi nhận được một đĩa cứng và không phải là một chiếc nhẫn. Tôi muốn lấy kết quả đầu ra chỉ bằng XML chứ không phải canvas. Tôi đang làm gì sai?

Cảm ơn.

CHỈNH SỬA: Làm việc đó nhờ vào câu trả lời bên dưới. Heres mã cuối cùng của tôi:

<?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> 

Trả lời

130

Hãy thử một cái gì đó giống như

<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> 

Cập nhật này: làm android:thicknessRatio="2" để cung cấp cho vòng tròn đầy đủ (sử dụng Nexus 5 - Lollipop)

+0

Tuyệt vời !! bạn thật tuyệt. – swiftBoy

+7

Tôi đã làm cho nó 'android: thicknessRatio = "2" 'thành một vòng khép kín (Nexus 5, Lollipop) – David

+0

@David bình luận nên được thêm vào câu trả lời. Dù sao, cảm ơn;) –

1

Bạn có thể sử dụng giá trị sẵn có android cho minh bạch dưới dạng @android:color/transparent hoặc sử dụng #0000 hoặc #00000000

để bắt đầu ở trên cho 4 chữ số đầu tiên là cho alpha và in Giá trị 8 chữ số đầu tiên có hai chữ số giống như alpha.

Khi bạn chỉ cần cung cấp cho 3 chữ số hoặc 6 chữ số trong màu hơn giá trị mặc định alpha là ff bạn bằng cách đi qua trong 4 chữ số hoặc 8 giá trị số cài đặt mà alpha của giá trị màu

+1

Hi Pratik, tôi không hiểu phần alpha của câu trả lời của bạn. Tôi đã thêm dòng vào tệp XML. Nhưng vẫn có kết quả tương tự. – Anirudh

+0

alpha này được sử dụng để đặt độ mờ của màu. Nếu bạn thiết lập 4 0 hoặc 8 0 so với nó hoàn toàn minh bạch, với sự gia tăng của 2 chữ số đầu tiên trong giá trị 8 0 chỉ làm tăng giá trị của độ mờ – Pratik

17

sử dụng này nó sẽ làm việc

 <?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> 
4

rỗng

<?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> 

Full

<?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> 
+0

Điều này thực sự hoạt động và đơn giản hơn các câu trả lời khác, tôi đang sử dụng nó! Cảm ơn – Juancho

0

Nếu bạn có thể sử dụng các hình vẽ Vector thử này

<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> 
Các vấn đề liên quan