Có cách nào trong Android để vẽ hình chữ nhật được tô đầy với đường viền màu đen không. Vấn đề của tôi là canvas.draw() lấy một đối tượng vẽ, và với kiến thức của tôi, đối tượng vẽ không thể có màu khác cho fill và stroke. Có cách nào để giái quyết vấn đề này không?Vẽ hình chữ nhật đầy với đường viền trong android
Trả lời
Bạn vẽ hình chữ nhật có màu đường viền và kích thước hình chữ nhật cộng với đường viền, bạn thay đổi màu của hình vẽ và vẽ lại hình chữ nhật với kích thước bình thường.
Lưu ý rằng kết quả này trong một bản vẽ cùng một khu vực gần như hai lần –
Thử sơn. setStyle (Paint.Style. FILL) và sơn. setStyle (Paint.Style. STROKE).
Paint paint = new Paint();
Rect r = new Rect(10, 10, 200, 100);
@Override
public void onDraw(Canvas canvas) {
// fill
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.MAGENTA);
canvas.drawRect(r, paint);
// border
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.BLACK);
canvas.drawRect(r, paint);
}
Có cách nào để thực hiện việc này cho canvas.drawRoundRect() không? Bởi vì trong trường hợp của tôi, đường viền bây giờ đã làm tròn các góc, mặc dù tôi vẽ nó với canvas.drawRoundRect(). – Chris
Tôi biết rằng câu trả lời là cũ, nhưng tôi muốn chia sẻ dòng này little.setPathEffect (new CornerPathEffect (radius)); để trả lời câu hỏi của Chris. Tôi chỉ trả lời vì có thể ai đó cần giúp đỡ. – Crash
Nếu bạn vẽ nhiều chế độ xem thì bạn cũng có thể sử dụng hai loại sơn, một cho nét và một cho điền. Bằng cách đó bạn không cần phải giữ lại chúng.
Paint fillPaint = new Paint();
Paint strokePaint = new Paint();
RectF r = new RectF(30, 30, 1000, 500);
void initPaints() {
// fill
fillPaint.setStyle(Paint.Style.FILL);
fillPaint.setColor(Color.YELLOW);
// stroke
strokePaint.setStyle(Paint.Style.STROKE);
strokePaint.setColor(Color.BLACK);
strokePaint.setStrokeWidth(10);
}
@Override
protected void onDraw(Canvas canvas) {
// First rectangle
canvas.drawRect(r, fillPaint); // fill
canvas.drawRect(r, strokePaint); // stroke
canvas.translate(0, 600);
// Second rectangle
int cornerRadius = 50;
canvas.drawRoundRect(r, cornerRadius, cornerRadius, fillPaint); // fill
canvas.drawRoundRect(r, cornerRadius, cornerRadius, strokePaint); // stroke
}
- 1. OpenGL vẽ đường viền hình chữ nhật
- 2. Đường viền vẽ hình chữ nhật WPF
- 3. Hình chữ nhật chỉ có một đường viền
- 4. Vẽ Hình chữ nhật Xoay
- 5. Vẽ đường viền trên hình dạng trên Android
- 6. Trích xuất hình chữ nhật từ đường viền OpenCV
- 7. Làm cách nào để tạo hình chữ nhật với đường viền được phác thảo?
- 8. Vẽ hình chữ nhật ở UIView
- 9. Vẽ hình chữ nhật trong iOS
- 10. Vẽ nhiều hình chữ nhật trong GDI +
- 11. Xử lý đường viền và hình chữ nhật giới hạn trong OpenCV 2.4 - python 2.7
- 12. Tại sao có hình chữ nhật khung và hình chữ nhật có viền trong UIView?
- 13. Libgdx - Làm thế nào để vẽ hình chữ nhật đầy ở đúng nơi trong scene2d?
- 14. Tạo một hình chữ nhật vẽ (đầy màu đen) chức năng trong Java cho một lưới
- 15. cho các đường nối hình chữ nhật
- 16. Đường viền được tô hình động trong Android
- 17. Vẽ một hình chữ nhật điền với độ mờ thấp
- 18. Qt vẽ đường bao quanh hình chữ nhật như thế nào?
- 19. Vẽ hình chữ nhật trên một JPanel
- 20. Vẽ hình chữ nhật với các đường đứt nét bằng cách sử dụng Rafael.js
- 21. C# vẽ hình chữ nhật trên hình tượng?
- 22. Làm thế nào để vẽ một hình chữ nhật tròn (hình chữ nhật với các góc tròn) với OpenCV?
- 23. Android - Cách vẽ một đường viền dựa trên gradient
- 24. Làm thế nào để vẽ hình tam giác với nền trong suốt với đường viền?
- 25. Cách vẽ hình chữ nhật trên Bản đồ cơ sở
- 26. Vẽ đường viền tròn xung quanh hình ảnh bằng Raphael
- 27. Android: animate một hình chữ nhật
- 28. Làm thế nào để vẽ hình chữ nhật?
- 29. Làm cách nào để vẽ hình chữ nhật có đường nét đứt trong canvas?
- 30. Vẽ hình chữ nhật trên picturebox - cách giới hạn diện tích hình chữ nhật?
Bạn nói đúng. Chỉ cần vẽ trực tràng đầy trước và sau đó đột quỵ xung quanh bên ngoài. – Gene