Android — 如何製作Google Map上用圓餅圖顯示資訊 - JLin

文章推薦指數: 80 %
投票人數:10人

Android — 如何製作Google Map上用圓餅圖顯示資訊. 由於Google Map只有一個圖案,並且只能透過自訂顏色 mMap.addMarker(new MarkerOptions() .position(centerLatLng) GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWriteAndroid—如何製作GoogleMap上用圓餅圖顯示資訊由於GoogleMap只有一個圖案,並且只能透過自訂顏色mMap.addMarker(newMarkerOptions().position(centerLatLng).title("Center").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));如果要自己設定圖案呢?那就只能自己產生圖自己畫,該怎麼做呢?可以參考這邊Markers|MapsSDKforAndroid|GoogleDevelopersMarkericonsarenormallydrawnwithrespecttothescreen;rotating,tiltingorzoomingthemapwillnotchangethe…developers.google.com透過很多來源,asset中的圖或者drawable或是Bitmap等使用.icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));主要就是BitmapDescriptorFactory的方式,完整寫法如下privateMarkermelbourne=mMap.addMarker(newMarkerOptions().position(MELBOURNE).title("Melbourne").snippet("Population:4,137,400").icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));我們這邊可以自己創立Bitmap來設定,可以改為fromBitmap那要怎麼回到主題,製作圓餅圖呢?先直接公布答案privateBitmapcreateBitmap(longtotal,longremind){floatsweepAngle=((float)remind/(float)total)*360.0f;Bitmapbmp=Bitmap.createBitmap(100,100,Bitmap.Config.ARGB_8888);Canvascanvas=newCanvas(bmp);floatcenterX=bmp.getWidth()/2.0f;floatcenterY=bmp.getHeight()/2.0f;Paintpaint=newPaint();paint.setStyle(Paint.Style.FILL);paint.setColor(Color.WHITE);canvas.drawCircle(centerX,centerY,bmp.getWidth()/2.0f,paint);paint.setStyle(Paint.Style.FILL);if(sweepAngle>=300.0f){paint.setColor(Color.LTGRAY);}elseif(sweepAngle>=200.0f){paint.setColor(Color.GREEN);}elseif(sweepAngle>=100.0f){paint.setColor(Color.YELLOW);}else{paint.setColor(Color.RED);}canvas.rotate(-90.0f,centerX,centerY);canvas.drawArc(0.0f,0.0f,bmp.getWidth(),bmp.getWidth(),0,sweepAngle,true,paint);returnbmp;}透過這樣方式就可以直接畫上有比例進度的圓,主要是canvas.drawArc(0.0f,0.0f,bmp.getWidth(),bmp.getWidth(),0,sweepAngle,true,paint);前四個就是範圍,重點就是主要sweepAngel(0to360),而rotate主要因為他的0度是在右邊開始,所以把他轉往-90,就可以跟我們平常想的起始角度一致,可以產生這樣的結果透過一些計算加上文字,還可以變成大概這樣變成更像神奇寶貝球了(誤?ENDMorefromJLinFollowAndroid/Kotlin等相關技術分享,基本只是自己一個技術紀錄,所以寫的文章可能都有頭無尾或是有尾無頭,直到接觸Kotlin,對KotlinJS/KotlinNative/KMM/Compose等等都相當有興趣,偶爾分享些3C/攝影相關心得Lovepodcastsoraudiobooks?Learnonthegowithournewapp.TryKnowableAboutHelpTermsPrivacyGettheMediumappGetstartedJLin193FollowersAndroid/Kotlin等相關技術分享,基本只是自己一個技術紀錄,所以寫的文章可能都有頭無尾或是有尾無頭,直到接觸Kotlin,對KotlinJS/KotlinNative/KMM/Compose等等都相當有興趣,偶爾分享些3C/攝影相關心得FollowHelpStatusWritersBlogCareersPrivacyTermsAboutKnowable



請為這篇文章評分?