background image

 

40

             Point tapP = 

new

 Point();

 

41

            projection.toPixels(pt, tapP);

 

42

             Point popP = 

new

 Point();

 

43

            projection.toPixels(lp.point, popP);

 

44

             

int

 xMin = popP.x - lp.width / 2 + lp.x;

 

45

             

int

 yMin = popP.y - lp.height + lp.y;

 

46

             

int

 xMax = popP.x + lp.width / 2 + lp.x;

 

47

             

int

 yMax = popP.y + lp.y;

 

48

             

if

 (tapP.x < xMin || tapP.y < yMin || tapP.x > xMax

 

49

                     || tapP.y > yMax)

 

50

                popupLinear.setVisibility(View.GONE);

 

51

        }

 

52

         

return

 

false

;

 

53

    }

 

54

 

 

55

    @Override

 

56

     

protected

 

boolean

 onTap(

int

 i) {

 

57

         

//

 

点击

Marker 时,该 Marker 滑动到地图中央偏下的位置,并显示 Popup 窗口

 

58

         OverlayItem item = getItem(i);

 

59

         

if

 (popupView == 

null

) {

 

60

             

//

 

如果

popupView 还没有创建,则构造 popupLinear

 

61

             

if

 (!createPopupView()){

 

62

                 

return

 

true

;

 

63

            }

 

64

        }

 

65

         

if

 (onTapListener == 

null

)

 

66

             

return

 

true

;

 

67

        popupLinear.setVisibility(View.VISIBLE);

 

68

        onTapListener.onTap(i, popupView);

 

69

 

 

70

         popupLinear.measure(0, 0);

 

71

         

int

 viewWidth = popupLinear.getMeasuredWidth();

 

72

         

int

 viewHeight = popupLinear.getMeasuredHeight();

 

73

 

 

74

         LayoutParams layoutParams = 

new

LayoutParams(viewWidth, viewHeight,

 

75

                 item.getPoint(), 0, -60, LayoutParams.BOTTOM_CENTER);

 

76

         layoutParams.mode = LayoutParams.MODE_MAP;

 

77