2015-10-04 66 views
0

我正在製作一個基本的應用程序來測試製作路徑。安卓繪製路徑不是從我點擊AVD的位置開始的

所以我得到了工作的路徑,但是當我在模擬器中並開始一條路徑時,它會從我點擊的地方開始下方約1英寸的路徑。

除了下面的英寸的路徑,它會跟隨我的鼠標,並建立一個路徑,但總是從鼠標所在的一英寸以下。

這是我的代碼:

public class Paths extends Activity { 

Path newPath = new Path(); 
Paint paint = new Paint(); 
Canvas canvas = new Canvas(); 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_paths); 

} 

public boolean onTouchEvent(MotionEvent event) { 
    LinearLayout relative = (LinearLayout) findViewById(R.id.drawing_view2); 
    float x = event.getRawX(); 
    float y = event.getRawY(); 

    switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      newPath.moveTo(x, y); 
      relative.addView(new DrawView2(relative.getContext(), newPath)); 
      return true; 
     case MotionEvent.ACTION_MOVE: 
      newPath.lineTo(x, y); 
      break; 
     case MotionEvent.ACTION_UP: 

     default: 
      return false; 
    } 
    relative.invalidate(); 
    return true; 
} 

這是java類處理顏料和畫布對象。

private final Path path; 

private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 

public DrawView2(Context context, Path path) { 
    super(context); 
    int mycolor = Color.parseColor("#6633CC"); 
    paint.setAntiAlias(true); 
    paint.setDither(true); 
    paint.setColor(mycolor); 
    paint.setStyle(Paint.Style.STROKE); 
    paint.setStrokeJoin(Paint.Join.ROUND); 
    paint.setStrokeCap(Paint.Cap.ROUND); 
    paint.setStrokeWidth(8f); 
    this.path = path; 
} 

protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.drawPath(path, paint); 
} 

和我的佈局文件,

float x = event.getRawX(); 
float y = event.getRawY(); 

取而代之的是

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/drawing_view2"        
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="#33FF99" 

回答

0

你得到的座標,嘗試:

float x = event.getX(); 
float y = event.getY(); 
+0

試過我得到同樣的問題 – Deciem

+0

以前沒有工作,但現在這樣工作 – Deciem