카메라 뷰 위에 표시되는 캔버스에 선 그림이있는 안드로이드 앱을 만들고 있습니다. 그 목적은 그 경계에서 이미지를 캡처하기위한 개요를 제공하는 선을 그리는 것입니다. 안드로이드가 그려진 선을 터치 한 상태에서 드래그합니다.
그림을 그릴 때 경계선으로 사용되는 선을 그릴 수 있습니다. 하지만 내가 원하는 것은 내가 그린 선을 드래그 할 수 없거나 드로잉 한 후에 선의 크기를 조절할 수 없다는 것입니다. 현재 선을 그릴 때 매우 신중해야하며 약간의 편차가 필요합니다.
그래서 누군가가 라인에서 드래그 리스너를 구현할 수 있습니다. 손가락으로 라인을 터치 할 때들을 수있는 객체로 라인을 만드는 방법은 무엇입니까?
감사합니다, 이르판
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
downx = event.getX();
downy = event.getY();
fstTouch = downx;
fstTouchx = downx;
fstTouchY = downy;
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
upx = event.getX();
upy = event.getY();
if (actionE == 1) {
actionE = 2;
canvas.drawLine(downx, downy, upx, upy, Manage_Template.mPaint);
invalidate();
editor.putFloat("downx", fstTouchx);
editor.putFloat("downy", fstTouchY);
editor.putString("fst", "2");
editor.putFloat("newDownx", upx);
editor.putFloat("newDowny", upy);
editor.commit();
}
else {
fDownx = sharedPreferences.getFloat("downx", 0);
fDowny = sharedPreferences.getFloat("downy", 0);
newDownx = sharedPreferences.getFloat("newDownx", 0);
newDowny = sharedPreferences.getFloat("newDowny", 0);
fstLate = fstTouch - fDownx; //85-100=15
scndLate = fstTouch - newDownx;//120-100=30
st = String.valueOf(fstLate);
sl = String.valueOf(scndLate);
st = st.replace("-", "");
sl = sl.replace("-", "");
fstLate = Float.parseFloat(st);
scndLate = Float.parseFloat(sl);
if (fstLate >= scndLate) {
canvas.drawLine(newDownx, newDowny, upx, upy, Manage_Template.mPaint);
editor.putFloat("newDownx", upx);
editor.putFloat("newDowny", upy);
editor.commit();
invalidate();
Log.d("Action UP","fstlate>");
} else {
canvas.drawLine(fDownx, fDowny, upx, upy, Manage_Template.mPaint);
editor.putFloat("downx", upx);
editor.putFloat("downy", upy);
editor.putFloat("newDownx", newDownx);
editor.putFloat("newDowny", newDowny);
editor.commit();
invalidate();
Log.d("Action UP","scndlate");
}
}
// }
break;
}
return true;
}
테스트 코드 추가 –