資源描述:
《android關(guān)于地圖拍照上傳項(xiàng)目的一些總結(jié)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、http://www.apkbus.com/android-19206-1-1.html這個(gè)項(xiàng)目是為某個(gè)運(yùn)動(dòng)品牌商店定做,一開始就是十分吸引我的。因?yàn)樗墓δ茳c(diǎn)十分普遍,所以如果我完成了這個(gè)項(xiàng)目,自然會(huì)沉淀下來一些功能代碼,項(xiàng)目框架,和相關(guān)的經(jīng)驗(yàn),以方便日后使用。首先它是款地圖應(yīng)用,可以獲得所有商店,在地圖上以小圖釘?shù)姆绞匠尸F(xiàn)。然后要支持查找用戶當(dāng)前的位置,進(jìn)入某個(gè)商店,查看里面的商店信息和店內(nèi)的視頻和照片,支持拍照,錄制視頻并上傳,也可以進(jìn)行評(píng)論。用戶也可自己添加,編輯,刪除商店。功能點(diǎn)就是這些,算是個(gè)小項(xiàng)目,為期也就3周時(shí)間,但是由于一些新東西沒有接觸過,所以還是需要總結(jié)一下
2、這次遇到的問題。1.注冊MAPKEY這個(gè)是眾所周知的,可以理解為不同的開發(fā)電腦有不同的debug.keystore文件,所以需要對(duì)應(yīng)不同的MAPKEY。這只是限于開發(fā),發(fā)布APK不會(huì)影響。keytool-list-aliasandroiddebugkey-keystoreC:DocumentsandSettingsuser.androiddebug.keystore這個(gè)keytool是java/bin環(huán)境下的然后得到MD5值后再去http://code.google.com/android/maps-api-signup.html點(diǎn)擊打開鏈接驗(yàn)證獲得KEY就行了2.這次項(xiàng)
3、目結(jié)構(gòu)很清晰,吸取以往的經(jīng)驗(yàn),告別application這個(gè)類.之前的項(xiàng)目就是把很多需要傳遞的數(shù)據(jù)裝在application里面,包括activity之間的數(shù)據(jù)傳遞,我都完全沒有使用intent傳遞(覺得序列化很麻煩)然后getApplication滿天飛,數(shù)據(jù)管理起來非常混亂,各種未知的數(shù)據(jù)不同步的bug.這次發(fā)現(xiàn)Parcelable序列化接口蠻好用的只需要實(shí)現(xiàn)以下幾個(gè)方法就好,邏輯很清晰1.@Override2.??publicintdescribeContents(){3.??????//TODOAuto-generatedmethodstub4.??????return0
4、;5.??}6.7.??@Override8.??publicvoidwriteToParcel(Parceldest,intflags){??????????9.??????//把你想序列化的數(shù)據(jù)都寫進(jìn)去10.??????dest.writeDouble(gp.getLatitudeE6());11.??????dest.writeDouble(gp.getLongitudeE6());12.??????dest.writeInt(isTemp?1:0);13.??????dest.writeInt(isEdit?1:0);1.??????dest.writeSerializa
5、ble(storeBean);2.??}3.4.??publicstaticfinalParcelable.CreatorCREATOR=newParcelable.Creator(){5.??????publicStoreOverlaycreateFromParcel(Parcelin){????????????????//根據(jù)你上面寫的數(shù)據(jù),再讀出來重新生成,注意是新的對(duì)象生成,類似深度clone6.????????doublemLat=in.readDouble();7.????????doublemLon=in.re
6、adDouble();8.????????booleanisTemp=in.readInt()==1?true:false;9.????????booleanisEdit=in.readInt()==1?true:false;10.????????StoreBeanstoreBean=(StoreBean)in.readSerializable();11.????????GeoPointgp=newGeoPoint((int)mLat,(int)mLon);12.????????StoreOverlaystoreOverlay=newStoreOverlay(gp,storeBe
7、an,isTemp);13.????????storeOverlay.setEdit(isEdit);14.????????returnstoreOverlay;15.??????}16.17.??????publicStoreOverlay[]newArray(intsize){18.????????returnnewStoreOverlay[size];19.??????}20.??};復(fù)制代碼3.既然用到了intent傳遞數(shù)據(jù),這次也用到一個(gè)十分方便的方法startActi