2015年3月12日 星期四

客製化 map icon




















因來源不同及價錢同需客制可變icon
先用layout設計











View map_icon = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate({layout id}, null);
//圖示價錢
TextView txt_price = (TextView) map_icon.findViewById(R.id.txt_price);
txt_price.setText("958");

//加到地圖
mMap.addMarker(new MarkerOptions()
    .position(latLng)
    .snippet(gPrice.getID())
    .icon(BitmapDescriptorFactory.fromBitmap(createDrawableFromView(MapActivity.this, map_icon))));

將view繪製成圖
    // Convert a view to bitmap
    public static Bitmap createDrawableFromView(Context context, View view) {
        DisplayMetrics displayMetrics = new DisplayMetrics();
        ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
        view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels);
        view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels);
        view.buildDrawingCache();
        Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        view.draw(canvas);

        return bitmap;
    }

沒有留言:

張貼留言