У меня есть объект Rect, который я рисую с помощью drawRect (Rect, Paint). У меня есть OnTouchEvent, который проверяет, находится ли позиция касания внутри Rect. Если касание находится внутри Rect, то что-то на моем экране меняется. Проблема, с которой я столкнулась, заключается в следующем: где мне нужно прикоснуться, чтобы выполнить инструкции касания на расстоянии около 50 пикселей выше объекта Rect.OnTouchEvent не уверен, где drawRect is
Вот соответствующие части моего кода:
public class MainActivity extends Activity {
DrawView drawView;
RelativeLayout fLY;
static Rect newGame = new Rect(LEFT, 165 + 35, 320, 200 + 35);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
fLY = new RelativeLayout(this);
drawView = new DrawView(this);
fLY.addView(drawView);
setContentView(fLY);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
int touchX = (int)event.getX();
int touchY = (int)event.getY();
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
if(newGame.contains(touchX, touchY))reset();
}
}
И мой DrawView класс:
public class DrawView extends View{
Paint paint = new Paint();
int COLORS[] = Constants.COLORS;
int left = 250;
int size = 35;
public DrawView(Context context) {
super(context);
}
@Override
public void onDraw(Canvas canvas) {
canvas.drawRect(MainActivity.newGame, paint);
}
}
Проблема с высотой строки состояния и/или заголовка. Но когда я запустил код в вашей ссылке, он сказал, что высота строки состояния и заголовка равна нулю, поэтому я не смог исправить свою проблему, компенсируя прикосновение yPos. Я поместил код в конец моего метода onCreate. Я временно исправил свою проблему, полностью удалив заголовок и строку состояния. –