Android: è ansible aggiornare un ImageView / ImageButton con un numero per mostrare il numero di nuovi messaggi?

In iOS abbiamo una funzionalità per aggiornare l'icona app con i nuovi messaggi in sospeso per l'utente mostrando un piccolo numero nell'angolo in alto a destra dell'icona e allo stesso modo vorrei sapere se abbiamo un metodo per aggiornare un ImageView / ImageButton in android (Qui non sto cercando di aggiornare l'icona nella schermata iniziale ma all'interno della mia applicazione).

Ad esempio, la foto mostra l'icona di background rosso con il numero di messaggi in attesa di essere letto in rosso e se non ci sono messaggi che viene visualizzato con uno background grigio.

  • casella di controllo in listview per la selezione multipla di contatti
  • Posizionamento / Sovrapposizione (z-index) una vista sopra un'altra vista in android
  • Ottieni i coordinati di touch relativi a una vista (ScreenToClient Equivalent?)
  • android SQLite database rimosso dopo la disinstallazione
  • Fornitore privato di contenuti Android?
  • Tentativo di ricall il metodo di interface 'void android.support.v7.widget.DecorContentParent.setWindowCallback (android.view.Window $ Callback)'
  • immettere qui la descrizione dell'immagine

    Grazie,

  • Come get il numero di pixel uguale a un raggio di cerchio Geozone secondo il livello di zoom? O Raggio del cerchio di zona per visualizzare i pixel?
  • Ottieni il text dalla pagina web alla string
  • Ci sono strutture applicative Android come la spring?
  • Android: come distriggersre il rotolo verticale di ScrollView quando si scorge un orizzontaleScrollView?
  • Crea un selettore di stili
  • Timertask o Handler
  • 2 Solutions collect form web for “Android: è ansible aggiornare un ImageView / ImageButton con un numero per mostrare il numero di nuovi messaggi?”

    Ero interessato a questo modo perché non sapevo come farlo. Così ho iniziato a guardarlo e qui è come ho fatto.

    • Io non sono uno specialist in UI in modo che ci possa essere qualche cosa inutile / sbagliato nei seguenti XML.
    • Da quanto ho detto sopra, non ho riuscito ad avere il count nell'angolo in basso a destra dell'icona. 🙂
    • Per il test, uso l' icon.png standard.png dalla sdk

    res / drawable / shapecount.xml

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="20dp" /> <solid android:color="#ff2233" /> </shape> 

    res / layout / my_widget_layout.xml

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RelativeLayout android:orientation="vertical" android:background="@null" android:id="@+id/rlayout" android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:id="@+id/icon" android:src="@drawable/icon" android:layout_margin="0dp" android:layout_height="wrap_content" android:layout_width="wrap_content"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="50" android:textSize="9dp" android:textStyle="bold" android:background="@drawable/shapecount" android:textColor="#FFFFFF" android:paddingLeft="3dp" android:paddingRight="3dp" android:layout_margin="0dp" android:layout_alignBottom="@+id/rlayout" android:id="@+id/txtCount" /> </RelativeLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="My App Name" android:textSize="9dp" android:textStyle="bold" android:background="@drawable/shapecount" android:textColor="#FFFFFF" android:paddingLeft="3dp" android:paddingRight="3dp" android:layout_margin="0dp" android:layout_alignBottom="@+id/rlayout" android:id="@+id/txtAppName" /> </LinearLayout> 

    Un widget per la casa è in realtà una vista normale che puoi creare in un file XML come se fosse per un'attività. Ci sono alcune regole da seguire però. Vedi questo link per la guida

    In questo collegamento che mostra come creare un AppWidget, puoi vedere il seguente codice:

     // Get the layout for the App Widget and attach an on-click listener to the button RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout); 

    where R.layout.appwidget_provider_layout è il layout del widget home, che sarà my_widget_layout.xml

    Da queste views , è ansible impostare il valore desiderato per qualsiasi visualizzazione di text di count:

     int count = 50;//Or whatever value you set to it. views.setTextViewText(R.id.txtCount,Integer.toString(count)); 

    e poi devi solo aggiornare il widget stesso:

     appWidgetManager.updateAppWidget(appWidgetId, views); 

    NOTA:

    L' aggiornamentoPeriodMillis non consente al widget di richiedere un aggiornamento più di una volta each 30 minuti in modo da utilizzare una combinazione di BroadcastReceiver e Service

    EDIT:

    Vedere sotto un test di attività se il count che si desidera dovrebbe essere all'interno di un'attività anziché un AppWidget . Utilizza gli stessi XML come sopra:

     public class TestActivity extends Activity { /** Called when the activity is first created. */ final Random gen = new Random(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final TextView t = (TextView) findViewById(R.id.txtCount); Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { int a = gen.nextInt(20); t.setText(Integer.toString(a)); } }); } } ,new Date(), 3000L); } } 

    Mentre stai cercando di farlo all'interno della tua applicazione, non nella schermata iniziale, ti suggerisco di creare una sottoclass di ImageView e di ignorare onDraw () – fare una vernice di background, call super.onDraw (), quindi fare in primo piano la pittura.

    In alternativa, è ansible utilizzare Bitmap.copy ecc per creare un'image composita dall'icona di base e una bitmap più piccola con il count dei messaggi.

    Spero che questo ti aiuti,

    Phil Lello

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.