嗨我需要在画布上绘制一条简单的线条,它应该写出带有白线的红色矩形。但是它并没有画出我错过的东西。 我的代码:
Canvas canvas = new Canvas();
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
canvas.drawPaint(paint);
Path path = new Path();
//canvas.drawColor(Color.CYAN);
for (int i = 5; i < 50; i++) {
path.moveTo(4, i-1);
path.lineTo(4, i);
}
path.close();
paint.setStrokeWidth(3);
paint.setPathEffect(null);
paint.setColor(Color.WHITE);
paint.setStyle(Paint.Style.STROKE);
canvas.drawPath(path, paint);
for (int i = 0; i < 3; i++) {
View iview = inflater.inflate(R.layout.linear_layout, null);
if(i == 0){
iview.findViewById(R.id.imageView1).setBackgroundResource(R.drawable.distspeed);
}
if(i == 1){
iview.findViewById(R.id.imageView1).setBackgroundResource(R.drawable.hxmdist);
}
if(i == 2){
iview.findViewById(R.id.imageView1).setBackgroundResource(R.drawable.hxmspeeed);
}
iview.draw(canvas);
realViewSwitcher.addView(iview);
}
答案 0 :(得分:16)
我只发布工作代码:
修改过的活动:
for (int i = 0; i < 2; i++) {
MyView mView = new MyView(this,i);
realViewSwitcher.addView(mView);
}
MyView的:
public class MyView extends View {
public MyView(Context context, int kolki) {
super(context);
if (kolki == 0){
this.setBackgroundResource(R.drawable.distspeed);
}
if (kolki == 1){
this.setBackgroundResource(R.drawable.hxmdist);
}
}
public void setBackgroundResource (int resid){
super.setBackgroundResource(resid);
}
public void onDraw(Canvas c){
super.onDraw(c);
Paint paint = new Paint();
Path path = new Path();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.TRANSPARENT);
c.drawPaint(paint);
for (int i = 50; i < 100; i++) {
path.moveTo(i, i-1);
path.lineTo(i, i);
}
path.close();
paint.setStrokeWidth(3);
paint.setPathEffect(null);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
c.drawPath(path, paint);
}
}