2010-11-30 10 views
5

Estoy haciendo un appwidget, y hay un mapa de bits en el widget del cual quiero cambiar su transparencia.setAlpha para RemoteViews problema

En el servicio que tienen:

RemoteViews remoteView = new RemoteViews(getApplicationContext().getPackageName(), R.layout.myWidget); 

remoteView.setInt(R.id.widgetPNG, "setAlpha", 50); 

Pero no funciona. El emulador muestra "Widget de carga problemática" en la pantalla de inicio. Estoy bastante seguro de que todo lo demás está bien porque cuando cambié la línea para cambiar su imageResource funciona perfectamente: remoteView.setInt(R.id.widgetPNG, "setImageResource", R.drawable.anotherPNG).

¿Alguien me puede ayudar? He estado pegado con esto por una semana ...

Respuesta

8

Am fraid sólo se puede llamar setInt() y amigos en las API que están marcados con el @RemotableViewMethod anotación en el código fuente de Android (example). Miedo setAlpha() no es uno de ellos.

Tal vez usted podría tener dos imágenes de fondo, una transparente y otra no transparente ... imagen Conjunto

+0

dos imágenes no es una opción para mí, ya que lo que quiero es a desaparecer poco a poco la imagen decir, el 10% cada hora. – Kinwai

+0

¿De qué otra forma puedo cambiar la transparencia de una imagen en un widget? – Kinwai

+0

¿Usa 9 imágenes? Puede intentar crear su propia clase de vista que tenga un setAlpha (int) público con la anotación @ android.view.RemotableViewMethod. No estoy seguro de que funcione, pero vale la pena intentarlo. Debería incluir un archivo que declare RemotableViewMethod en el paquete android.view. –

9

en un src de imageview en XML. En java:

if (Integer.parseInt(Build.VERSION.SDK) > Build.VERSION_CODES.ECLAIR_MR1) { 
    rViews.setInt(R.id.imageview, "setAlpha", 30); 
} 

prueba este este apoyo sólo está disponible por encima de 2,1

+0

También tenga en cuenta que 'setAlpha (int)' se desaprobó y se reemplazó por 'setImageAlpha (int)' en API 16. – Sam

Cuestiones relacionadas