2011-07-26 6 views
1

간단한 응용 프로그램에 오버레이가있는 Google지도가 있습니다. 그리고 내 위치에 아이콘을 배치하는 onDraw() 메소드. 내가 응용 프로그램 닫히지이나 활동 이전에 가지 뒤로 버튼을 클릭하면 :(이 내가 내 활동에 사용되는 방법이다.뒤로 버튼이 안드로이드 구글 mp에서 작동하지 않습니다

public boolean onKeyDown(int keyCode, KeyEvent event) { 

     if (keyCode == KeyEvent.KEYCODE_I) { 
      gMapView.getController().setZoom(gMapView.getZoomLevel() + 1); 
      return true; 
     } else if (keyCode == KeyEvent.KEYCODE_O) { 
      gMapView.getController().setZoom(gMapView.getZoomLevel() - 1); 
      return true; 
     } else if (keyCode == KeyEvent.KEYCODE_S) { 
      gMapView.setSatellite(true); 
      return true; 
     } else if (keyCode == KeyEvent.KEYCODE_T) { 
      gMapView.setTraffic(true); 
      return true; 
     } 
     return false; 
    } 



/* Class overload draw method which actually plot a marker,text etc. on Map */ 

protected class MyLocationOverlay extends com.google.android.maps.Overlay { 

    @Override 
    public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) { 
     Paint paint = new Paint(); 

     super.draw(canvas, mapView, shadow); 
     // Converts lat/lng-Point to OUR coordinates on the screen. 
     Point myScreenCoords = new Point(); 
     mapView.getProjection().toPixels(p, myScreenCoords); 

     paint.setStrokeWidth(1); 
     paint.setARGB(255, 255, 255, 255); 
     paint.setStyle(Paint.Style.STROKE); 

     Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.passenger); 

     canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, paint); 
     canvas.drawText("I am here...", myScreenCoords.x, myScreenCoords.y, paint); 
     return true; 

    } 

답변

1

당신은 방법의 끝에 return true;를 제거하고 대신 insid return super.onKeyDown(keyCode, event);와 함께 else 문을 넣어한다 그것의 e.

+0

고마워요. :) –

1
public boolean onKeyDown(int keyCode, KeyEvent event) { 

     if (keyCode == KeyEvent.KEYCODE_I) { 
      gMapView.getController().setZoom(gMapView.getZoomLevel() + 1); 
      return true; 
     } else if (keyCode == KeyEvent.KEYCODE_O) { 
      gMapView.getController().setZoom(gMapView.getZoomLevel() - 1); 
      return true; 
     } else if (keyCode == KeyEvent.KEYCODE_S) { 
      gMapView.setSatellite(true); 
      return true; 
     } else if (keyCode == KeyEvent.KEYCODE_T) { 
      gMapView.setTraffic(true); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

가 다음 코드를 추가하여이

+0

감사합니다. 지금은 잘 작동합니다. :) –

0

시도 onKeyDown에 방법의 다른 부분입니다.

return super.onKeyDown(keyCode, event); 
+0

고마워요. 지금은 잘 작동합니다. :) –

관련 문제