锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品亚洲日本佐佐木明希,亚洲免费电影网站,久久亚洲2019中文字幕http://www.tkk7.com/super/category/45937.htmlzh-cnMon, 16 Aug 2010 02:26:16 GMTMon, 16 Aug 2010 02:26:16 GMT60android涓偣涓璷verlay寮瑰嚭甯﹀熬宸寸殑姘旀場鐨勫疄鐜?/title><link>http://www.tkk7.com/super/archive/2010/08/12/android_mapview_overlay.html</link><dc:creator>鐜嬪崼鍗?/dc:creator><author>鐜嬪崼鍗?/author><pubDate>Thu, 12 Aug 2010 07:03:00 GMT</pubDate><guid>http://www.tkk7.com/super/archive/2010/08/12/android_mapview_overlay.html</guid><wfw:comment>http://www.tkk7.com/super/comments/328671.html</wfw:comment><comments>http://www.tkk7.com/super/archive/2010/08/12/android_mapview_overlay.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/super/comments/commentRss/328671.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/super/services/trackbacks/328671.html</trackback:ping><description><![CDATA[<p><img alt="" src="http://www.tkk7.com/images/blogjava_net/super/mappop.png" border="0" /></p> <br /> <br /> <br /> 灝辨槸涓婇潰鐨勬牱瀛?br /> <br /> 鍋氳繖涓繃紼嬩腑鎴戠鍒頒袱涓棶棰?<br /> 1:濡備綍鍋氬甫灝懼反鐨勬皵娉iew<br /> 2:濡備綍鎶婅繖涓猇iew娣誨姞鍒癕apView涓?<br /> <br /> <br /> 1:濡備綍鍋氬甫灝懼反鐨勬皵娉iew<br /> 鎴戞槸閲囩敤鑳屾櫙鍥劇殑鏂瑰紡鏉ュ疄鐜扮殑.褰撶劧,鏅氱殑PNG鍦╒iew 緙╂斁鐨勬椂鍊欎細澶辯湡,灝ゅ叾鏄偅涓皷灝栫殑灝懼反.<br /> 鍚庢潵閲囩敤9.png鐨勬牸寮?鎵嶅畬鎴愪簡涓嶅彉褰㈢殑鏁堟灉.9.png鏍煎紡鐨凱ng鍙互鐢⊿DK\Tools\draw9patch.bat鏉ュ鐞?鍙鎶婃櫘閫氱殑png鐨勮竟涓婃爣蹇椾竴涓嬪氨鍙互浜?鍏蜂綋draw9patch.bat濡備綍浣跨敤榪欓噷灝變笉璇翠簡,緗戜笂鏈夊緢澶氭枃妗?鑷繁鏌ユ煡灝辯煡閬撲簡.<br /> 鎴戠敓鎴愮殑9.png灝辨槸涓嬮潰榪欎釜鏍峰瓙,娉ㄦ剰鍥涘懆鐨勯粦綰?灝辨槸9png鎷変幾鏃剁殑鏍囪瘑<br /> <img height="51" alt="" src="http://www.tkk7.com/images/blogjava_net/super/bubble_background.9.png" width="65" border="0" /><br /> <br /> 鏈変簡榪欎釜png,鐩存帴鏀懼埌浣犵殑宸ョ▼涓嬬殑res/drawable鐩綍灝卞彲浠ヤ簡,<br /> 鐒跺悗鍦╮es/layout鐩綍涓嬪緩绔嬩綘鐨剉iew鐨剎ml鏂囦歡,姣斿鍙玱verlay_pop.xml,鎴戠殑鏄繖鏍風(fēng)殑:<br /> <br /> <?xml version="1.0" encoding="UTF-8"?><br /> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />  android:orientation="vertical" <br />  android:background="@drawable/bubble_background"<span style="color: red"> <!--榪欏氨鏄偅涓?.png--><br /> </span> android:layout_width="wrap_content" <br />  android:layout_height="wrap_content"<br />  android:paddingLeft="5px"<br />  android:paddingTop="5px"<br />  android:paddingRight="5px"<br />  android:paddingBottom="20px"    <span style="color: red"><!--娉ㄦ剰鍔犱笂padding,鍚﹀垯view閲岄潰鐨勪笢瑗垮氨鐢誨埌杈規(guī)涓婁簡--><br /> </span>   ><br />     <TextView android:id="@+id/map_bubbleTitle" <br />        android:ellipsize="marquee" <br />        android:layout_width="match_parent" <br />        android:layout_height="wrap_content"<br />        android:gravity="center_horizontal"<br />        android:singleLine="true" <br />        style="@style/map_BubblePrimary" /> <span style="color: red"><!--style鍙互娌℃湁,鎴戣繖閲岀涓涓猅extView琛ㄧず鏍囬,鐢ㄧ殑鏄ぇ瀛椾綋--><br /> </span>    <TextView  android:id="@+id/map_bubbleText" <br />        android:layout_width="match_parent" <br />        android:layout_height="wrap_content" <br />        android:singleLine="false" <br />        style="@style/map_BubbleSecondary" /><span style="color: red"><!--style鍙互娌℃湁,鎴戣繖閲岀浜屼釜TextView琛ㄧず鎻忚堪淇℃伅,鐢ㄧ殑鏄ぇ瀛椾綋--><br /> </span></LinearLayout><br /> <br /> <br /> 榪欐牱popView灝卞緩绔嬪ソ浜?br /> <br /> <br /> 2:濡備綍鎶婅繖涓猇iew娣誨姞鍒癕apView涓?<br /> 閫氬父鏄湪mapView涓偣鍑繪煇涓綅緗?寮瑰嚭popView<br /> 鎴栬呯偣鍑繪煇涓狾verlay寮瑰嚭popView,榪欓噷鐢ㄧ偣鍑籓verlay鏉ヨ鏄?<br /> <br /> overlay鏈塷nTap()鏂規(guī)硶,浣犲彲浠ュ疄鐜拌嚜宸辯殑overlay,overideonTap()鏂規(guī)硶,寮瑰嚭popView,<br /> 涔熷彲浠ヤ嬌鐢╯etOnFocusChangeListener(),鍦╨istener涓疄鐜板脊鍑簆opView,.<br /> 鎴戞槸鐢ㄧ殑listener,鍥犱負setOnFocusChangeListener鍦ㄥけ鍘葷劍鐐逛篃浼氳Е鍙?鎴戝彲浠ュ啀澶卞幓鐒︾偣鐨勬椂鍊欓殣钘弍opView.<br /> <br /> MapView鏄?span style="color: red">緇ф壙鑷猇iewGroup</span>鐨?鍥犳,MapView鏈塧ddView()鏂規(guī)硶,鍚屾椂榪樻湁<span style="color: red">MapView.LayoutParams<br /> </span><span style="color: red"><span style="color: #000000">MapView.LayoutParams 鍙互鏍規(guī)嵁GeoPoint鏉ュ畾浣?鎴戝氨鏄埄鐢ㄨ繖涓壒鎬ф潵瀹氫綅寮瑰嚭鐨刾opView鐨?<br /> </span><br /> <span style="color: #000000">PointItemizedOverlay overlay = new PointItemizedOverlay(drawable); <!--榪欐槸鎴戠戶鎵胯嚜ItemizedOverlay鐨刼verlay,涓昏灝辨槸鐢諱竴涓浘鐗?鍐欎竴涓悕縐?寰堢畝鍗?榪欓噷涓嶈創(chuàng)鍏蜂綋浠g爜浜?-></span><br /> </span><br /> public class BaseMapActivity extends MapActivity {<br /> <br />  /**<br />   * 鍦板浘View<br />   */<br />  protected MapView mapView;<br /> <p> /**<br />   * 寮瑰嚭鐨勬皵娉iew<br />   */<br />  private View popView;<br /> /**<br />     鐩戝惉鍣?br /> */<br />  private final ItemizedOverlay.OnFocusChangeListener onFocusChangeListener = new ItemizedOverlay.OnFocusChangeListener() {</p> <p>  @Override<br />   public void onFocusChanged(ItemizedOverlay overlay, OverlayItem newFocus) {<br />       //鍒涘緩姘旀場紿楀彛<br />  </p> <p>   if (popView != null) {<br />       popView.setVisibility(View.GONE);<br />    }</p> <p>   if (newFocus != null) {</p> <p>    MapView.LayoutParams geoLP = (MapView.LayoutParams) popView.getLayoutParams();<br />     <span style="color: #ff0000">geoLP.point = newFocus.getPoint();//榪欒鐢ㄤ簬popView鐨勫畾浣?br /> </span>    TextView title = (TextView) popView.findViewById(R.id.map_bubbleTitle);<br />     title.setText(newFocus.getTitle());</p> <p>    TextView desc = (TextView) popView.findViewById(R.id.map_bubbleText);<br />     if (newFocus.getSnippet() == null || newFocus.getSnippet().length() == 0) {<br />      desc.setVisibility(View.GONE);<br />     } else {<br />      desc.setVisibility(View.VISIBLE);<br />      desc.setText(newFocus.getSnippet());<br />     }<br />     mapView.updateViewLayout(popView, geoLP);<br />     popView.setVisibility(View.VISIBLE);<br />    }<br />   }<br />  };<br /> </p> <br /> <br /> <br />      public void onCreate(Bundle savedInstanceState) {<br />           super.onCreate(savedInstanceState);<br />             /**<br />             鐪佺暐鍏朵粬浠g爜<br />            **/<br /> <br />           //鍒濆鍖栨皵娉?騫惰緗負涓嶅彲瑙?br /> <br />        popView = inflater.inflate(R.layout.overlay_popup, null);<br />        mapView.addView( popView,<br />              <span style="color: #ff0000">new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT, MapView.LayoutParams.WRAP_CONTENT,<br />            null, MapView.LayoutParams.BOTTOM_CENTER));<br />           //鐢變簬鎴戠殑姘旀場鐨勫熬宸存槸鍦ㄤ笅杈瑰眳涓殑,鍥犳瑕佽緗垚MapView.LayoutParams.BOTTOM_CENTER.<br />           //榪欓噷娌℃湁緇橤eoPoint,鍦╫nFocusChangeListener涓緗?br /> </span>       views.add(popView);<br />       popView.setVisibility(View.GONE);<br /> <br />     娣誨姞overlay<br />     PointItemizedOverlay overlay = new PointItemizedOverlay(drawable);<br />     //璁劇疆鏄劇ず/闅愯棌娉℃場鐨勭洃鍚櫒<br />     overlay.setOnFocusChangeListener(onFocusChangeListener);<br />     overlay.addOverlay(/*浣犺嚜宸辯殑overlayItem*/);<br />     overlay.addOverlay(/*浣犺嚜宸辯殑overlayItem*/);<br />     overlay.addOverlay(/*浣犺嚜宸辯殑overlayItem*/);<br /> <br />     }<br /> }<br /> <br /> 榪欐牱灝卞熀鏈畬宸ヤ簡.<br /> <br /> <br /> <br /> <br /> <img src ="http://www.tkk7.com/super/aggbug/328671.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/super/" target="_blank">鐜嬪崼鍗?/a> 2010-08-12 15:03 <a href="http://www.tkk7.com/super/archive/2010/08/12/android_mapview_overlay.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>android mapView涓敾杞ㄨ抗鐨刼verlayhttp://www.tkk7.com/super/archive/2010/08/12/android-map.html鐜嬪崼鍗?/dc:creator>鐜嬪崼鍗?/author>Thu, 12 Aug 2010 06:21:00 GMThttp://www.tkk7.com/super/archive/2010/08/12/android-map.htmlhttp://www.tkk7.com/super/comments/328661.htmlhttp://www.tkk7.com/super/archive/2010/08/12/android-map.html#Feedback0http://www.tkk7.com/super/comments/commentRss/328661.htmlhttp://www.tkk7.com/super/services/trackbacks/328661.html
浣跨敤鏂規(guī)硶:
LineItemizedOverlay overlay = new LineItemizedOverlay();

overlay.addOverlay(/*璧風(fēng)偣鐨凮verlayItem*/);
overlay.addOverlay(/*緇堢偣鐨凮verlayItem*/);
overlay.addLinePoint(/*瑕佺敾鐨勮建榪圭殑GeoPoint鐨凩ist*/);

mapView.getOverlays().add(overlay);

/**
 *
 */
package com.xtyon.tuola.truck.map;

import java.util.ArrayList;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.drawable.Drawable;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapView;
import com.google.android.maps.OverlayItem;
import com.google.android.maps.Projection;

/**
 * 鍦板浘涓婄殑綰垮瀷鍥懼眰:鍖呮嫭涓涓搗鐐?涓涓粓鐐?浠ュ強涔嬮棿鐨勬洸綰?br />  * @author superwang
 */
public class LineItemizedOverlay extends ItemizedOverlay<OverlayItem> {
 private static final int LAYER_FLAGS = Canvas.MATRIX_SAVE_FLAG | Canvas.CLIP_SAVE_FLAG
   | Canvas.HAS_ALPHA_LAYER_SAVE_FLAG | Canvas.FULL_COLOR_LAYER_SAVE_FLAG | Canvas.CLIP_TO_LAYER_SAVE_FLAG;
 /**
  * 鐢ㄤ簬淇濆瓨璧風(fēng)偣/緇堢偣鏁版嵁
  */
 private final ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();

 /**
  * 鐢ㄤ簬淇濆瓨鏋勬垚鏇茬嚎鐨勭偣鐨勬暟鎹?br />   */
 private final ArrayList<GeoPoint> linePoints = new ArrayList<GeoPoint>();

 /**
  * @param defaultMarker
  */
 public LineItemizedOverlay() {
  super(null);

  // TODO Auto-generated constructor stub
 }

 /* (non-Javadoc)
  * @see com.google.android.maps.ItemizedOverlay#createItem(int)
  */
 @Override
 protected OverlayItem createItem(int i) {
  return mOverlays.get(i);

 }

 /* (non-Javadoc)
  * @see com.google.android.maps.ItemizedOverlay#size()
  */
 @Override
 public int size() {
  // TODO Auto-generated method stub
  return mOverlays.size();
 }

 /**
  * 璋冧環(huán)璧風(fēng)偣/緇堢偣
  * description:
  * @param overlay
  */
 public void addOverlay(OverlayItem overlay) {
  mOverlays.add(overlay);
  populate();
 }

 /**
  * 娣誨姞鏇茬嚎涓殑鐐?br />   * description:
  * @param point
  */
 public void addLinePoint(GeoPoint point) {
  linePoints.add(point);
 }

 public ArrayList<GeoPoint> getLinePoints() {
  return linePoints;
 }

 /**
  * 鐢昏搗鐐?緇堢偣/杞ㄨ抗
  */
 @Override
 public void draw(Canvas canvas, MapView mapView, boolean shadow) {
  if (!shadow) {
   //System.out.println("!!!!!!!!!!!!!!");

   canvas.save(LAYER_FLAGS);
   //canvas.save();

   Projection projection = mapView.getProjection();
   int size = mOverlays.size();
   Point point = new Point();
   Paint paint = new Paint();
   paint.setAntiAlias(true);
   OverlayItem overLayItem;

   //鐢昏搗鐐?緇堢偣
   for (int i = 0; i < size; i++) {

    overLayItem = mOverlays.get(i);

    Drawable marker = overLayItem.getMarker(0);
    //marker.getBounds()
    /* 璞$礌鐐瑰彇寰楄漿鎹?*/
    projection.toPixels(overLayItem.getPoint(), point);

    if (marker != null) {
     boundCenterBottom(marker);
    }

    /* 鍦嗗湀 */
    //Paint paintCircle = new Paint();
    //paintCircle.setColor(Color.RED);
    paint.setColor(Color.RED);
    canvas.drawCircle(point.x, point.y, 5, paint);

    /* 鏂囧瓧璁劇疆 */
    /* 鏍囬 */
    String title = overLayItem.getTitle();
    /* 綆浠?*/
    //    String snippet = overLayItem.getSnippet();
    //
    //    StringBuffer txt = new StringBuffer();
    //    if (title != null && !"".equals(title))
    //     txt.append(title);
    //
    //    if (snippet != null && !"".equals(snippet)) {
    //     if (txt.length() > 0) {
    //      txt.append(":");
    //     }
    //     txt.append(snippet);
    //    }    
    //Paint paintText = new Paint();

    if (title != null && title.length() > 0) {
     paint.setColor(Color.BLACK);
     paint.setTextSize(15);
     canvas.drawText(title, point.x, point.y, paint);
    }

   }

   //鐢葷嚎

   boolean prevInBound = false;//鍓嶄竴涓偣鏄惁鍦ㄥ彲瑙嗗尯鍩?br />    Point prev = null;
   int mapWidth = mapView.getWidth();
   int mapHeight = mapView.getHeight();
   //Paint paintLine = new Paint();
   paint.setColor(Color.RED);
   //paint.setPathEffect(new CornerPathEffect(10));
   paint.setStrokeWidth(2);
   int count = linePoints.size();

   //Path path = new Path();
   //path.setFillType(Path.FillType.INVERSE_WINDING);
   for (int i = 0; i < count; i++) {
    GeoPoint geoPoint = linePoints.get(i);
    //projection.toPixels(geoPoint, point); //榪欎竴琛屼技涔庢湁闂
    point = projection.toPixels(geoPoint, null);
    if (prev != null) {
     if (point.x >= 0 && point.x <= mapWidth && point.y >= 0 && point.y <= mapHeight) {
      if ((Math.abs(prev.x - point.x) > 2 || Math.abs(prev.y - point.y) > 2)) {
       //榪欓噷鍒ゆ柇鐐規(guī)槸鍚﹂噸鍚堬紝閲嶅悎鐨勪笉鐢葷嚎錛屽彲鑳戒細瀵艱嚧鐢葷嚎涓嶅湪璺笂
       canvas.drawLine(prev.x, prev.y, point.x, point.y, paint);
       //path.lineTo(point.x, point.y);

       prev = point;
       prevInBound = true;

      }
     } else {
      //鍦ㄥ彲瑙嗗尯涓庝箣澶?br />       if (prevInBound) {//鍓嶄竴涓偣鍦ㄥ彲瑙嗗尯鍩熷唴錛屼篃闇瑕佸垝綰?br />        //path.lineTo(point.x, point.y);
       canvas.drawLine(prev.x, prev.y, point.x, point.y, paint);
      }
      prev = point;
      prevInBound = false;
     }
    } else {
     //path.moveTo(point.x, point.y);
     prev = point;

    }
   }
   //canvas.drawPath(path, paint);
   canvas.restore();
   //DebugUtils.showMemory();
  }
  super.draw(canvas, mapView, shadow);
 }

}



]]>
主站蜘蛛池模板: 久久精品国产亚洲AV嫖农村妇女| 四虎影视精品永久免费| 国产成人A人亚洲精品无码| 一二三四在线观看免费中文在线观看| 动漫黄网站免费永久在线观看| 亚洲永久中文字幕在线| 4399影视免费观看高清直播| 2022年亚洲午夜一区二区福利| 99久久99久久精品免费观看| 亚洲精品视频免费看| 无码国产精品一区二区免费式影视| 亚洲宅男永久在线| 亚洲网站在线免费观看| www.亚洲日本| 日本xxwwxxww在线视频免费| 亚洲av中文无码乱人伦在线观看| 国产免费卡一卡三卡乱码 | 亚洲国产精品线在线观看| 在线观看免费无码专区| 男女猛烈激情xx00免费视频| 国产一区二区三区在线免费观看| 香蕉视频免费在线播放| 久久精品国产亚洲AV不卡| 精品视频在线免费观看| 亚洲福利电影在线观看| 91嫩草国产在线观看免费| 国产亚洲精品免费| 日韩亚洲欧洲在线com91tv| 亚洲免费网站在线观看| 亚洲精品无码av片| 久久精品国产亚洲7777| 1000部拍拍拍18勿入免费视频下载| 激情综合亚洲色婷婷五月APP | 最好免费观看韩国+日本| 色九月亚洲综合网| 国产偷v国产偷v亚洲高清| 无码人妻精品中文字幕免费东京热| 亚洲爆乳AAA无码专区| 亚洲乱码国产乱码精品精| 手机在线看永久av片免费| 免费一区二区无码视频在线播放|