2

重複の可能性:
アンドロイドで線を引く方法

鉛筆を使用して列を一致させる場合と同様に、2 つのオプションを一致させる必要があります。ある列の行をクリックして、その行を他の列の他の適切な行と一致させると、2 つの行の間に線が動的に描画されます。まず、ドラッグアンドドロップ機能を使用しました。しかし、それで動的に線を引くことはできません.どうすれば可能ですか? 提案をお願いします。

4

3 に答える 3

2

両方の行要素の を取得し、Touch Eventsそれらが一致する場合は、次のコードを使用して水平線を描画します。

canvas.drawLine(10, 10, 90, 10, paint);
canvas.drawLine(10, 20, 90, 20, paint);

編集: Androidで線を引く方法を参照してください

于 2012-05-17T06:40:56.173 に答える
1

GeoPoints を「スクリーン」ポイントに変換するには、MapView から Projection を使用します。その後、Path を使用して必要な線を描画できます。最初のポイントは path.moveTo(x, y) で指定し、残りは path.lineTo(x, y) で指定する必要があります。最後に canvas.drawPath(path) を呼び出して完了です。

以下は、一連のポイントの周りに多角形を描画する draw() メソッドのコードです。コードで行ったように、 path.close() を使用する必要がないことに注意してください。

public void draw(android.graphics.Canvas canvas, MapView mapView, boolean shadow)
{
if(shadow){
    if(isDrawing == false){
        return;
    }
    Projection proj = mapView.getProjection();

    boolean first = true;
    /*Clear the old path at first*/
    path.rewind();
    /* The first tap */
    Paint circlePaint = new Paint();
    Point tempPoint = new Point();
    for(GeoPoint point: polygon){
        proj.toPixels(point, tempPoint);
        if(first){
            path.moveTo(tempPoint.x, tempPoint.y);
            first = false;
            circlePaint.setARGB(100, 255, 117, 0);
            circlePaint.setAntiAlias(true);
            canvas.drawCircle(tempPoint.x, tempPoint.y, FIRST_CIRCLE_RADIOUS, circlePaint);
        }
        else{
            path.lineTo(tempPoint.x, tempPoint.y);
            circlePaint.setARGB(100, 235, 0, 235);
            circlePaint.setAntiAlias(true);
            canvas.drawCircle(tempPoint.x, tempPoint.y, CIRCLE_RADIOUS, circlePaint);
        }
    }
    /* If indeed is a polygon just close the perimeter */
    if(polygon.size() > 2){
        path.close();
    }
    canvas.drawPath(path, polygonPaint);
    super.draw(canvas, mapView, shadow);
}

}

参照: Android MapView で複数の GeoPoint 間に線を動的に描画する

于 2012-05-17T06:36:11.060 に答える
1

2 つの列の間にカスタム ビューを配置し、キャンバスに何でも描画できるようにします。選択に成功したとき。選択した 2 つのビューの境界を取得し、キャンバスを使用して、開始ビューの右端と下端から 2 番目のビューの上端と左端まで線を引きます。

于 2012-05-17T07:17:51.787 に答える