Kec*_*Kec 99 android android-canvas
如何使用borderWidth = 3和borderColor = black绘制空矩形,并且矩形内的部分没有内容或颜色.Canvas中使用哪个功能
void drawRect(float left, float top, float right, float bottom, Paint paint)
void drawRect(RectF rect, Paint paint)
void drawRect(Rect r, Paint paint)
Run Code Online (Sandbox Code Playgroud)
谢谢.
我试试这个例子
Paint myPaint = new Paint();
myPaint.setColor(Color.rgb(0, 0, 0));
myPaint.setStrokeWidth(10);
c.drawRect(100, 100, 200, 200, myPaint);
Run Code Online (Sandbox Code Playgroud)
它绘制矩形并用黑色填充它但我只想像这个图像一样"框架":

Don*_*Gru 122
假设" 矩形内的部分没有内容颜色 "意味着您希望矩形内有不同的填充; 您需要在矩形内绘制一个矩形,然后使用笔触宽度0和所需的填充颜色.
例如:
DrawView.java
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
public class DrawView extends View {
Paint paint = new Paint();
public DrawView(Context context) {
super(context);
}
@Override
public void onDraw(Canvas canvas) {
paint.setColor(Color.BLACK);
paint.setStrokeWidth(3);
canvas.drawRect(30, 30, 80, 80, paint);
paint.setStrokeWidth(0);
paint.setColor(Color.CYAN);
canvas.drawRect(33, 60, 77, 77, paint );
paint.setColor(Color.YELLOW);
canvas.drawRect(33, 33, 77, 60, paint );
}
}
Run Code Online (Sandbox Code Playgroud)
启动它的活动:
StartDraw.java
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
public class StartDraw extends Activity {
DrawView drawView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawView = new DrawView(this);
drawView.setBackgroundColor(Color.WHITE);
setContentView(drawView);
}
}
Run Code Online (Sandbox Code Playgroud)
......会这样:

小智 11
//white background
canvas.drawRGB(255, 255, 255);
//border's properties
paint.setColor(Color.BLACK);
paint.setStrokeWidth(0);
paint.setStyle(Paint.Style.STROKE);
canvas.drawRect(100, 100, 200, 200, paint);
Run Code Online (Sandbox Code Playgroud)
创建一个新类MyView, Which extends View.覆盖onDraw(Canvas canvas)方法以绘制矩形Canvas.
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;
public class MyView extends View {
Paint paint;
Path path;
public MyView(Context context) {
super(context);
init();
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public MyView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init(){
paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStrokeWidth(10);
paint.setStyle(Paint.Style.STROKE);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawRect(30, 50, 200, 350, paint);
canvas.drawRect(100, 100, 300, 400, paint);
//drawRect(left, top, right, bottom, paint)
}
}
Run Code Online (Sandbox Code Playgroud)
然后将您的Java活动移动到setContentView()使用我们的自定义View,MyView.Call这样.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyView(this));
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请访问此处
http://developer.android.com/reference/android/graphics/Canvas.html
paint.setStrokeWidth(3);
paint.setColor(BLACK);
Run Code Online (Sandbox Code Playgroud)
并且你们中的任何一个都drawRect应该工作.