jak narysować pusty prostokąt za pomocą itp. borderWidth = 3 i borderColor = black, a część w prostokącie nie ma treści ani koloru. Której funkcji w Canvas użyć
void drawRect(float left, float top, float right, float bottom, Paint paint)
void drawRect(RectF rect, Paint paint)
void drawRect(Rect r, Paint paint)
Dzięki.
Próbuję tego przykładu
Paint myPaint = new Paint();
myPaint.setColor(Color.rgb(0, 0, 0));
myPaint.setStrokeWidth(10);
c.drawRect(100, 100, 200, 200, myPaint);
Rysuje prostokąt i wypełnia go czarnym kolorem, ale chcę tylko „obramować” wokół, jak na tym obrazku:
Odpowiedzi:
Spróbuj
paint.setStyle(Paint.Style.STROKE)
?źródło
Zakładając, że „ część w prostokącie nie ma koloru zawartości ” oznacza, że chcesz mieć różne wypełnienia w prostokącie; musisz narysować prostokąt w swoim prostokącie, a następnie z szerokością obrysu 0 i żądanymi kolorami wypełnienia.
Na przykład:
DrawView.java
Czynność, aby ją rozpocząć:
StartDraw.java
... okaże się w ten sposób:
źródło
źródło
Utwórz nową klasę
MyView, Which extends View
. ZastąponDraw(Canvas canvas)
metodę rysowania prostokątaCanvas
.Następnie przenieś swoją aktywność w Javie do
setContentView()
korzystania z naszego niestandardowego widoku MyView.Więcej informacji można znaleźć tutaj
źródło
i któryś z twoich
drawRect
powinien działać.źródło
Nie wiem, czy jest za późno, ale sposobem, w jaki to rozwiązałem, było narysowanie czterech cienkich prostokątów, które razem tworzyły jedną dużą ramkę. Rysowanie obramowania za pomocą jednego prostokąta wydaje się być cofnięte, ponieważ wszystkie są nieprzezroczyste, więc każdą krawędź obramowania należy narysować osobno.
źródło
Kod jest w porządku, po prostu ustaw styl farby na STROKE
źródło