在android中绘制垂直线条

时间:2013-03-28 16:35:20

标签: android

我尝试在android中绘制垂直线条。

DrawView drawView;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    drawView = new DrawView(this);
    setContentView(drawView);

}

public class DrawView extends View {
    Paint paint = new Paint();

    public DrawView(Context context) {
        super(context);
        paint.setColor(Color.RED);
    }

    @Override
    public void onDraw(Canvas canvas) {
            canvas.drawLine(0, 100, 0, 0, paint);

    }

}

这只画了一行。我想做的是在整个屏幕上绘制这条线。我怎样才能做到这一点?它必须在屏幕上垂直绘制。它现在垂直绘制但只有一个。

1 个答案:

答案 0 :(得分:2)

到目前为止,您所希望的用例,我认为没有任何理由让您使用自定义视图。您可以设置重复启用的自定义背景:

<强> RES /抽拉/ MyBackground.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/lines_image"
    android:tileMode="repeat" />

然后为您的视图设置背景:

res / layout / whatever.xml

<View
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/MyBackground" />

OR

myView.setBackgroundResource(R.drawable.MyBackground);

lines_image.png应该是一个20px(或者你想要的空间多大)宽图像和右边的红线。

这是UI开发的一个重要概念。当简单的图像解决方案足够时,不要在代码中做复杂的事情。

如果绝对**必须**在代码中执行此操作然后您只需在画布宽度的循环中进行绘制。

private static final int LINE_SPACING = 20;

@Override
public void onDraw(Canvas canvas) {
    for (int x = 0; x < canvas.getWidth(); x += LINE_SPACING) {
        canvas.drawLine(x, 0, x, canvas.getHeight(), paint);
    }
}