0
단일 터치 입력을 사용하여 내 주요 활동에있는 사용자 정의보기를 이동하려고하는데, 동작 막대로 인해 이벤트의 x/y 좌표가 상쇄됩니다. 이동 중에 Android 사용자 정의보기가 오프셋됩니다.
내가 좌표하지만 아무것도 작동하는 것 같군없는 Y로 작업 표시 줄의 크기를 부정 할 수있는 방법을 찾기 위해 노력하고있어. 상위 뷰와 사용자 정의 뷰의 차이를 y 좌표getRootView().getHeight() - getHeight()
에서 뺀 값이 올바르지 않습니다.
누구나 올바른 방향으로 나를 가리킬 수 있습니까?
사용자 정의보기 :
public class SampleView extends View {
private Paint paint;
private Path path = new Path();
public SampleView(Context context) {
super(context);
init();
}
public SampleView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(10);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(path, paint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
final int x = (int) event.getRawX();
final int y = (int) event.getRawY();
switch(event.getActionMasked()) {
case MotionEvent.ACTION_DOWN: {
path.moveTo(x, y);
break;
}
case MotionEvent.ACTION_MOVE: {
path.lineTo(x, y);
break;
}
}
invalidate();
return true;
}
}
내 MainActivity 감동하지 않은,하지만 내 사용자 지정보기 activity_main의 XML에 추가 한 :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.caseyweed.sample.MainActivity">
<com.caseyweed.sample.SampleView
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
지금은 너무 바보 같아요. 정말 고맙습니다. – Battleroid