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"
試過我得到同樣的問題 – Deciem
以前沒有工作,但現在這樣工作 – Deciem