2010-11-30 3 views
5

Ich mache ein Appwidget, und es gibt eine Bitmap auf dem Widget, von dem ich seine Transparenz ändern möchte.setAlpha für RemoteViews Problem

Im Dienst habe ich:

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

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

Aber es funktioniert nicht. Der Emulator zeigt "Problem beim Laden des Widgets" auf dem Startbildschirm an. Ich bin mir ziemlich sicher, alles andere ist in Ordnung cos, als ich die Zeile änderte, um es zu ändern imageResource es läuft perfekt:

Kann mir jemand helfen? Ich habe mit diesem für eine Woche stecken ...

Antwort

8

Am fraid Sie nur setInt() und Freunde auf APIs aufrufen können, die mit der @RemotableViewMethod Anmerkung im Android-Quellcode markiert sind (example). Angst setAlpha() ist nicht einer von ihnen.

Vielleicht könnten Sie zwei Hintergrundbilder haben, einen transparenten und eine nicht-transparenten ...

+0

Zwei Bilder ist keine Option für mich, wie das, was ich will ist, das Bild zu verblassen allmählich sagen, 10% pro Stunde. – Kinwai

+0

Wie kann ich sonst die Transparenz eines Bildes in einem Widget ändern? – Kinwai

+0

Verwenden Sie 9 Bilder? Sie könnten versuchen, eine eigene View-Klasse mit einem öffentlichen setAlpha (int) mit der Annotation @ android.view.RemotableViewMethod zu erstellen. Nicht sicher, dass es funktioniert, aber einen Versuch wert. Sie müssten eine Datei hinzufügen, die RemotableViewMethod im android.view-Paket deklariert. –

9

Set-Bild in einem src von Imageview in XML. In Java:

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

versuchen Sie diese diese Unterstützung nur über 2.1

+0

Beachten Sie auch, dass 'setAlpha (int)' in API 16 veraltet und durch 'setImageAlpha (int)' ersetzt wurde. – Sam

Verwandte Themen