android paint stroke 绘制内边框
时间: 2023-11-22 18:52:49 浏览: 217
要在Android中绘制一个内边框,您可以使用Paint类的setStyle方法来设置画笔的样式为STROKE,然后使用drawRect方法来绘制矩形。
以下是一个绘制内边框的示例代码:
```
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(5);
Rect rect = new Rect(50, 50, 200, 200);
canvas.drawRect(rect, paint);
```
在这个示例代码中,我们首先创建了一个画笔对象,并设置其颜色为黑色。接下来,我们将画笔的样式设置为STROKE,并设置其线宽为5。然后,我们创建一个矩形对象,并使用画笔的drawRect方法将其绘制出来。
这将在矩形周围绘制一个5像素宽的黑色内边框。您可以根据需要调整画笔的颜色、样式和线宽来实现不同的效果。
相关问题
android paint stroke 绘制圆形内边框
要在 Android 上使用 Paint Stroke 绘制圆形内边框,可以通过以下步骤实现:
1. 创建一个 Paint 对象,并设置其样式和颜色。
```
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.BLACK);
```
2. 设置圆形的半径和中心坐标。
```
float radius = 100;
float centerX = 200;
float centerY = 200;
```
3. 使用 Canvas 对象的 drawCircle() 方法绘制圆形。
```
canvas.drawCircle(centerX, centerY, radius, paint);
```
4. 绘制内边框可以通过设置 Paint 对象的 strokeWidth 属性实现。
```
paint.setStrokeWidth(10);
canvas.drawCircle(centerX, centerY, radius - 5, paint);
```
这将在圆形的内部绘制一个宽度为 10 的边框。注意,边框的宽度应该是半径的一半,因为绘制的圆形是从中心点开始绘制的。
完整的代码示例:
```
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.BLACK);
float radius = 100;
float centerX = 200;
float centerY = 200;
paint.setStrokeWidth(10);
canvas.drawCircle(centerX, centerY, radius - 5, paint);
canvas.drawCircle(centerX, centerY, radius, paint);
```
在android中如何去自定义一个imageview,在imageview中使用不同的paint去绘制一张图片
要自定义一个 `ImageView` 并使用不同的 `Paint` 绘制图片,需要创建一个自定义的 `ImageView` 类并重写其中的 `onDraw()` 方法。在该方法中,可以使用不同的 `Paint` 对图片进行绘制。以下是一个简单的示例代码:
```java
public class CustomImageView extends ImageView {
private Paint paint1;
private Paint paint2;
public CustomImageView(Context context) {
super(context);
init();
}
public CustomImageView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CustomImageView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
// 初始化两个不同的 Paint
paint1 = new Paint();
paint1.setColor(Color.RED);
paint1.setStyle(Paint.Style.FILL);
paint2 = new Paint();
paint2.setColor(Color.BLUE);
paint2.setStyle(Paint.Style.STROKE);
paint2.setStrokeWidth(10);
}
@Override
protected void onDraw(Canvas canvas) {
// 获取当前 ImageView 中的 Drawable
Drawable drawable = getDrawable();
// 如果 Drawable 为空,则直接返回
if (drawable == null) {
return;
}
// 获取 Drawable 的宽和高
int width = drawable.getIntrinsicWidth();
int height = drawable.getIntrinsicHeight();
// 将 Drawable 绘制在 Canvas 上
drawable.setBounds(0, 0, width, height);
drawable.draw(canvas);
// 使用不同的 Paint 绘制边框和填充效果
canvas.drawRect(0, 0, width, height, paint1);
canvas.drawRect(10, 10, width - 10, height - 10, paint2);
}
}
```
在这个示例中,我们创建了一个 `CustomImageView` 类,重写了其中的 `onDraw()` 方法,并在该方法中使用两个不同的 `Paint` 绘制了一个边框和一个填充效果。你可以根据自己的需求修改 `Paint` 的属性,实现不同的效果。
阅读全文