Android 上繪制中國省份地圖

去年蘇州街一家公司面試,當時他們正在做一個關于國內省份的APP,因此被問到了一個問題

怎么將各省的輪廓繪制到APP上,而且可以控制不同的狀態(tài)灰伟?

我接到問題后不假思索得就說用Path,然后繪制到自定義的View上,多狀態(tài)的話控制不同的Paint進行繪制就好了栏账。

然后我們就這個問題討論了20分鐘帖族,最后考官把他們的方案告訴了我,用DreamRiver 畫熱區(qū)放到WebView上來顯示挡爵。

其實在WebView上顯示的話SVG其實是最合適的竖般,可以矢量放大,還能控制各種顏色茶鹃,不過不知道兼容性如何涣雕。

時間過去快一年了,這兩天想起了這件事闭翩,因此將當時的思路用代碼實現(xiàn)了一下

地圖演示

其實畫這個比較麻煩的就是找地圖的數(shù)據(jù)挣郭,還好中國地廣物博,歷史悠久疗韵,我找到了一個SVG的中國地圖兑障,接下來處理如下三步就行了

1.將SVG <path>轉成Android中的Path(詳見上篇文章)

2.將Path繪制到Canvas上,這個沒有難度

3.處理觸摸點擊等事件蕉汪,確定點擊在封閉的Path內

只要是個封閉的Path流译,在Android上還是很好弄得,看下面這個例子

 int x = 150;
 int y = 120;
 
 Path path = new Path();
 path.moveTo(100,100);
 path.lineTo(300,100);
 path.lineTo(300,300);
 path.close();
 
 RectF r = new RectF();
 path.computeBounds(r, true);
 Region re = new Region();
 re.setPath(path, 
        new Region((int) r.left, (int) r.top, (int) r.right, (int) r.bottom));
 boolean isInPath = re.contains(x,y);

這個Demo 已分享到GitHub,歡迎吐槽

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末者疤,一起剝皮案震驚了整個濱河市福澡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宛渐,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眯搭,死亡現(xiàn)場離奇詭異窥翩,居然都是意外死亡,警方通過查閱死者的電腦和手機鳞仙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門寇蚊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人棍好,你說我怎么就攤上這事仗岸。” “怎么了借笙?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵扒怖,是天一觀的道長。 經常有香客問我业稼,道長盗痒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任低散,我火速辦了婚禮俯邓,結果婚禮上骡楼,老公的妹妹穿的比我還像新娘。我一直安慰自己稽鞭,他們只是感情好鸟整,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著朦蕴,像睡著了一般篮条。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上梦重,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天兑燥,我揣著相機與錄音,去河邊找鬼琴拧。 笑死降瞳,一個胖子當著我的面吹牛,可吹牛的內容都是我干的蚓胸。 我是一名探鬼主播挣饥,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼沛膳!你這毒婦竟也來了扔枫?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤锹安,失蹤者是張志新(化名)和其女友劉穎短荐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叹哭,經...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡忍宋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了风罩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糠排。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖超升,靈堂內的尸體忽然破棺而出入宦,到底是詐尸還是另有隱情,我是刑警寧澤室琢,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布乾闰,位于F島的核電站,受9級特大地震影響盈滴,放射性物質發(fā)生泄漏汹忠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宽菜。 院中可真熱鬧谣膳,春花似錦、人聲如沸铅乡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阵幸。三九已至花履,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挚赊,已是汗流浹背诡壁。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荠割,地道東北人妹卿。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像蔑鹦,于是被迫代替她去往敵國和親夺克。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內容