2010-10-23 41 views
11

Có thể vẽ vòng tròn trên canvas trong Android bằng đường viền màu khác nhau chỉ bằng một phương thức drawCircle không?Android drawCircle với đường viền màu khác nhau

Tôi đã nhận thấy PaintStyle của FILL_AND_STROKE nhưng dường như không có màu sắc khác nhau cho cả điền và đường viền.

Tôi thực sự không muốn phải gọi hai phương thức drawCircle.

Trả lời

8

Định nghĩa của Paint.Style nói:

Paint.Style The Style specifies if the primitive being drawn is filled, 
stroked, or both (in the same color). 

Vì vậy, có vẻ như nó không thể được thực hiện trong một đi.

Nếu bạn làm điều này rất nhiều, bạn có thể tạo một phương thức trợ giúp tĩnh thực hiện hai cuộc gọi để vẽ vòng tròn có đường viền.

Hoặc bạn có thể tạo đối tượng tùy chỉnh android.graphics.drawable.shapes.Shape và ghi đè phương thức vẽ (..) của nó.

7

Cảm ơn Peter Knego!

nếu trong trường hợp bất kỳ một nhu cầu của Shape xml ở đây nó là

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="oval"> 
    <solid android:color="#FFFFFF"/> 
    <stroke android:width="5dp" android:color="#FFFF00" /> 
    <size 
     android:width="50dp" 
     android:height="50dp" /> 

    <corners android:radius="20dp" /> 
</shape> 
0

Bạn có thể vẽ một vòng tròn với Syle.STROKE một lớp trên vòng tròn khác.

+1

như câu hỏi gợi ý là nó có thể có một cuộc gọi drawCircle. phương pháp của bạn là những gì tôi đã cố gắng tránh xa – skyfoot

2

Hãy thử thực hiện một lớp và tạo ra các vòng tròn với đường biên giới bằng cách làm cho hai một nhỏ hơn khác sau đó sử dụng các lớp như hình dạng của bạn thay vì các hình dạng được xác định trước

Các vấn đề liên quan