1

Я уже создал push-уведомление с FCM, теперь мне нужно сделать значок счетчика на значок приложения. Итак, когда я получил непрочитанное уведомление, оно будет считаться. Если я прочитаю/коснусь уведомления на панели уведомлений, это уменьшит число.Установить знак в Android Push уведомления с Firebase?

Данное изображение ниже показывает, что мне нужно использовать.

Notification Badge Count

+0

вы хотите показать на значок приложения Райт? –

+0

@PatelPinkal да, я хочу показать его на значке приложения. Есть ли идея сделать это? Или это возможно? – Yuw

+0

его можно только в виджетах не на значке приложения, а на телефоне samsung предоставляется значок счетчика по умолчанию для уведомления –

ответ

0

Первый Создать notyfy.xml

 <?xml version="1.0" encoding="utf-8"?> 
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/counterPanel" 
    android:layout_width="32dp" 
    android:layout_height="32dp" 
    android:background="@drawable/bell"> 

    <RelativeLayout 
     android:id="@+id/counterValuePanel" 
     android:layout_width="wrap_content" 
     android:layout_gravity="end" 
     android:layout_height="wrap_content"> 

     <ImageView 
      android:id="@+id/counterBackground" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/ic_badge" /> 

     <TextView 
      android:id="@+id/count" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="1" 
      android:textSize="15sp" 
      android:textStyle="bold" 
      android:layout_centerInParent="true" 
      android:textColor="@color/colorWhite" /> 
    </RelativeLayout> 
</FrameLayout> 

то в вашей вытяжке папку положить изображение с красным фоном в вашем вопросе. теперь создайте файл меню в папке меню с именем home_main

 <menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 
     <item android:id="@+id/action_settings" 
     android:title="title" android:icon="@drawable/bell" 
     app:showAsAction="always" /> 
     </menu> 

в вашей деятельности, где вы используете количество жетонов поставить под кодом

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
public class MainActivity extends ActionBarActivity { 

    public int count = 0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.home_main, menu); 
     final MenuItem setting = menu.findItem(R.id.action_settings); 
     setting.setIcon(buildCounterDrawable(count, R.drawable.bell)); 
     return true; 
    } 
    public Drawable buildCounterDrawable(int NotiCount,int backgroundImageId) { 
     LayoutInflater inflater = LayoutInflater.from(this); 
     View view = inflater.inflate(R.layout.noty_count, null); 
     view.setBackgroundResource(backgroundImageId); 
     NotiCount = ((VApp) getApplicationContext()).getNoty(); 
     VLogger.infoLog("NotiCount" + NotiCount); 
     if (NotiCount == 0) { 
    View counterTextPanel =  view.findViewById(R.id.counterValuePanel); 
      counterTextPanel.setVisibility(View.GONE); 
     } else { 
      TextView textView = (TextView) view.findViewById(R.id.count); 
      textView.setText(NotiCount + ""); 
     } 
    view.measure(View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED), 
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); 
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); 

view.setDrawingCacheEnabled(true); 
view.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH); 
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache()); 
view.setDrawingCacheEnabled(false); 

return new BitmapDrawable(getResources(), bitmap); 
    } 




    @Override 
    protected void onResume() { 
     super.onResume(); 
     invalidateOptionsMenu(); 
    } 
} 
+0

@Yuw. Попробуйте это. –

+1

ему нужен счетчик значков на значок приложения не внутри приложения –