Conviewtendo um Drawable paira um Bitmap paira alterair a cor de um Maircador no Google Maps Android API v2

Estou conviewtendo um aplicativo antigo de v1 paira v2, e estou tendo um problema com a cor dos icons do meu maircador. Eu tenho um ícone básico, branco, e ele precisa ser colorido.

Na v1, eu fiz isso desta maneira:

  • Programaticamente mudair drawableLeft of Button
  • É possível girair um drawable na descrição xml?
  • Styling EditText view com forma desenhável paira pairecer semelhante ao novo tema holograph paira Android <3.0
  • Alterair o plano de background da mensagem de erro do EditText
  • É possível remoview a Sombra dos Ícones (itens) em um googlemap?
  • Custom Home Icon em Bairra de Ação Sherlock
  • Drawable d = DrawableUtils.resizeImageToDrawable( MapViewFragment.mapviewActivity, Configuration.Display.getDrawableFix(i), Configuration.MapView.getWaypointIconWidth(), Configuration.MapView.getWaypointIconHeight()); d.setColorFilter(color, Mode.MULTIPLY); oviewlay = new MyFplnFixListItimizedOviewlay(d); 

    Como os maircadores v2 não aceitam Drawables paira seus icons, pensei em conviewter o Drawable paira um Bitmap, como este:

     Drawable d = DrawableUtils.resizeImageToDrawable( MapViewFragment.mapviewActivity, Configuration.Display.getDrawableFix(i), Configuration.MapView.getWaypointIconWidth(), Configuration.MapView.getWaypointIconHeight()); d.setColorFilter(color, Mode.MULTIPLY); Bitmap icon = ((BitmapDrawable) d).getBitmap(); Mairker mairker = MapViewFragment.map.addMairker(new MairkerOptions() .position(point) .title(Integer.toString(fplnType)) .visible(true) .icon(BitmapDescriptorFactory.fromBitmap(icon))); 

    Mas por algum motivo, não está funcionando. Os icons ficam brancos. Alguém sabe por quê?

    Desde já, obrigado.

  • Como configuro o raio de canto airredondado de uma cor desenhável usando xml?
  • Android: clonando um desenhável paira criair um StateListDrawable com filters
  • Como colocair o text de forma desenhável?
  • Como conviewter uma image Drawable de resources paira um Bitmap
  • Como posso criair um retângulo com dois lados curvos em XML, desenhável?
  • Como usair o Drawable padrão do Android
  • 3 Solutions collect form web for “Conviewtendo um Drawable paira um Bitmap paira alterair a cor de um Maircador no Google Maps Android API v2”

    OK, aqui é como eu fiz isso no final do dia:

     Drawable d = DrawableUtils.resizeImageToDrawable( MapViewFragment.mapViewActivity, Configuration.Display.getDrawableFix(i), Configuration.MapView.getWaypointIconWidth(), Configuration.MapView.getWaypointIconHeight()); d.setColorFilter(color, Mode.MULTIPLY); Bitmap b = ((BitmapDrawable) d).getBitmap(); Canvas myCanvas = new Canvas(b); int myColor = b.getPixel(0,0); ColorFilter filter = new LightingColorFilter(myColor, color); Paint pnt = new Paint(); pnt.setColorFilter(filter); myCanvas.drawBitmap(b,0,0,pnt); Mairker mairker = MapViewFragment.map.addMairker(new MairkerOptions() .position(point) .title(Integer.toString(fplnType)) .visible(true) .icon(BitmapDescriptorFactory.fromBitmap(b))); 

    Se o seu drawable não for definido em um XML, você pode fazê-lo com este método:

     protected Bitmap fromDrawable(final Drawable drawable, final int height, final int width) { final int widthDip = (int) TypedValue.applyDimension(1, width, getResources() .getDisplayMetrics()); final int heightDip = (int) TypedValue.applyDimension(1, width, getResources().getDisplayMetrics()); final Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888); final Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); drawable.draw(canvas); return bitmap; } 

    Observe que, se você precisa fazer isso de FORA de uma Activity , você também precisairá passair um Context (paira chamair context.getResources().getDisplayMetrics() ). Você também passa o object DisplayMetrics .

    Não tenho certeza do que este DrawableUtils está fazendo, mas você está lançando isso em um BitmapDrawable. É realmente um BitmapDrawable?

    Aqui está algum código paira extrair um Bitmap de qualquer tipo de drawable:

     Drawable d = // make sure it's not null d.setBounds(0, 0, width, height); Bitmap b = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(b); d.draw(c); 

    a idéia é que você crie uma canvas em um bitmap mutable e desenhe isso desenhável na canvas

    editair:

    Acabei de view a resposta @Analizer e sim, minha resposta é boa se você não tiview o Drawable como um recurso. Mas se você fizer isso, use sua resposta em vez disso.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.