안드로이드 개발 질문/답변
(글 수 45,052)
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.mark);
Drawable drawable1 = this.getResources().getDrawable(R.drawable.mark1);
Drawable drawable2 = this.getResources().getDrawable(R.drawable.mark2);
Drawable drawable3 = this.getResources().getDrawable(R.drawable.mark3);
Drawable drawable4 = this.getResources().getDrawable(R.drawable.mark4);
Drawable drawable5 = this.getResources().getDrawable(R.drawable.mark5);
MarkItemizedOverlay itemizedOverlay = new MarkItemizedOverlay(drawable,this);
MarkItemizedOverlay itemizedOverlay1 = new MarkItemizedOverlay(drawable1,this);
MarkItemizedOverlay itemizedOverlay2 = new MarkItemizedOverlay(drawable2,this);
MarkItemizedOverlay itemizedOverlay3 = new MarkItemizedOverlay(drawable3,this);
MarkItemizedOverlay itemizedOverlay4 = new MarkItemizedOverlay(drawable4,this);
MarkItemizedOverlay itemizedOverlay5 = new MarkItemizedOverlay(drawable5,this);
GeoPoint point0 = new GeoPoint(lat00, lng00);
OverlayItem overlayitem0 = new OverlayItem(point0, null, date0);
GeoPoint point1 = new GeoPoint(lat11, lng11);
OverlayItem overlayitem1 = new OverlayItem(point1, null, date1);
GeoPoint point2 = new GeoPoint(lat22, lng22);
OverlayItem overlayitem2 = new OverlayItem(point2, null, date2);
GeoPoint point3 = new GeoPoint(lat33, lng33);
OverlayItem overlayitem3 = new OverlayItem(point3, null, date3);
GeoPoint point4 = new GeoPoint(lat44, lng44);
OverlayItem overlayitem4 = new OverlayItem(point4, null, date4);
GeoPoint point5 = new GeoPoint(lat55, lng55);
OverlayItem overlayitem5 = new OverlayItem(point5, null, date5);
itemizedOverlay.addOverlay(overlayitem0);
itemizedOverlay1.addOverlay(overlayitem1);
itemizedOverlay2.addOverlay(overlayitem2);
itemizedOverlay3.addOverlay(overlayitem3);
itemizedOverlay4.addOverlay(overlayitem4);
itemizedOverlay5.addOverlay(overlayitem5);
mapOverlays.add(itemizedOverlay);
mapOverlays.add(itemizedOverlay1);
mapOverlays.add(itemizedOverlay2);
mapOverlays.add(itemizedOverlay3);
mapOverlays.add(itemizedOverlay4);
mapOverlays.add(itemizedOverlay5);
///////////////////////////////////////////////////////////////////////////////
public class MarkItemizedOverlay extends ItemizedOverlay<OverlayItem> {
@Override //그리기,. 옵션 , 그림자없애기
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
super.draw(canvas, mapView, false);
//아이템 좌표를 가져와 생성한 포인트객체에 할당
mapView.getProjection().toPixels(mOverlays.get(0).getPoint(), targetPosition); ///이부분 !
mapView.getProjection().toPixels(mOverlays.get(1).getPoint(), startPosition);
Paint paint = new Paint(); //페인트 생성
paint.setStyle(Paint.Style.STROKE); // 스타일
paint.setAntiAlias(true); //부드럽게
paint.setStrokeWidth(3); //굵기
// paint.setColor(Color.RED);
paint.setARGB(70,255, 0, 0); //색깔, 투명도 (a, r, g, b)
Paint textpaint = new Paint();
textpaint.setColor(Color.BLACK);
textpaint.setStyle(Paint.Style.STROKE);
textpaint.setAntiAlias(true);
Paint backpaint = new Paint();
backpaint.setAntiAlias(true);
backpaint.setARGB(70,255, 0, 0);
RectF backRect = new RectF(targetPosition.x +2 + mRadius, targetPosition.y - 3*mRadius,
targetPosition.x + 65, targetPosition.y +mRadius);
canvas.drawLine(targetPosition.x, targetPosition.y, startPosition.x, startPosition.y, paint);
canvas.drawRoundRect(backRect, 5 , 5, backpaint);
canvas.drawText("현재 위치", targetPosition.x + 2*mRadius, targetPosition.y, textpaint);
}이런식으로 그린다고할때.. 마커이미지를 하나로했을땐 달토끼님의 답변으로, 충분이 선과 사각박스를 그릴수있었습니다.
하지만 마커이미지를 달리했을때는 안되더라구요.,, 어떤식으로 받아 와야하나요?
정녕 답없이. 그냥 선그을땐 한이미지로만으로, 해야하나요? 답변 꼭좀 부탁드리겠습니다.
2010.05.11 21:20:14
// 마커 이미지 자원을 가져옵니다
Drawable drawable1 =
Drawable drawable1 =
this.getResources().getDrawable(R.drawable.mark);
//자바 프로그래밍에서와 마찬가지로 이미지를 불러왔으면 Bounds 해줘야 합니다. 파라미터는 (x, y, 가로크기, 세로크기)
drawalble1.setBounds(0, 0, drawalble1.getIntrinsicWidth(), drawalble1.getIntrinsicHeight());
// 리스트의 첫번째 항목을 가져와 그곳에는 위에서 만든 마커를 set 하겠다는 메서드
mapOverlays.get(0).setMarker(drawalble1);



리스트에있는 항목마다 마커를 다르게 설정 할 수 있어요.
지금은 수업중이라 끝나고 집에서 자세히 설명해 드릴께요.