3

私はcolorAccentにマーカーの色を設定しようとしているが、どういうわけか、それは、このコードでは動作しません:色合いGoogleマップのAndroid APIマーカー

Drawable drawable = getResources().getDrawable(R.drawable.ic_place_white_24dp); 
drawable.setColorFilter(getResources().getColor(R.color.colorAccent), PorterDuff.Mode.MULTIPLY); 
BitmapDescriptor bitmap = BitmapDescriptorFactory.fromBitmap(((BitmapDrawable) drawable).getBitmap()); 
Bitmap workingBitmap = Bitmap.createBitmap(((BitmapDrawable) drawable).getBitmap()); 
Bitmap mutableBitmap = workingBitmap.copy(Bitmap.Config.ARGB_8888, true); 
Canvas canvas = new Canvas(mutableBitmap); 
drawable.draw(canvas); 
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(mutableBitmap); 
markerOptions.icon(bitmapDescriptor); 

私は無地の白のアイコンから引き出し可能に切り替えることを試みましたまた、Mode.MULTIPLYからMode.ADDに切り替えることを試みました。どちらも成功しない。

答えて

2

TRY THIS !!!!

private static Paint markerPaint; 
private static Paint whitePaint; 

Bitmap markerBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.mapmarker); 
Bitmap resultBitmap = Bitmap.createBitmap(markerBitmap, 0, 0, markerBitmap.getWidth() - 1, markerBitmap.getHeight() - 1); 
ColorFilter filter = new PorterDuffColorFilter(Themer.getPrimaryColor(getActivity()), PorterDuff.Mode.SRC_IN); 
if (markerPaint == null) { 
    markerPaint = new Paint(); 
    markerPaint.setColorFilter(filter); 
} else { 
    markerPaint.setColorFilter(filter); 
} 
Canvas canvas = new Canvas(resultBitmap); 
canvas.drawBitmap(resultBitmap, 0, 0, markerPaint); 
if (Themer.shouldShowStopCounts(getActivity())) { 
    if (whitePaint == null) { 
     whitePaint = new Paint(); 
     whitePaint.setColor(Color.WHITE); 
     whitePaint.setTextSize(40f); 
     whitePaint.setTextAlign(Paint.Align.CENTER); 
    } 
    canvas.drawText(item.name, resultBitmap.getWidth()/2, resultBitmap.getHeight()/2, whitePaint); 
} 
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(resultBitmap)); 
関連する問題