2016-12-30 197 views
1

私は既にFCMでプッシュ通知を作成しました。今ではアプリアイコン上にバッジカウンターを作成する必要があります。 私は未読の通知を受け取ったので、それはカウントされます。通知バーの通知を読んだり触れたりすると、番号が減少します。FirebaseでAndroidプッシュ通知のバッジ数を設定しますか?

下のこの画像は、私が使用する必要があるかを示します。

Notification Badge Count

+0

下に置くバッジ数を使用します。ここで、 は今、自分の活動に名前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> 

を作成するには、アプリのアイコン・ライトで表示したいですか? –

+0

@PatelPinkalはいアプリのアイコンに表示したいです。それを作る考えがありますか?それとも可能ですか? – Yuw

+0

そのアプリのアイコン上のウィジェットではないでのみ可能であり、サムスンの携帯電話は、通知 –

答えて

0

まず、あなたの質問に赤い背景を使用して描画可能なフォルダプット画像に続い

 <?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> 

notyfy.xml作成します。あなたは、コード

@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 .Tryこれを提供することはできません。 –

+1

彼はアプリケーション内ではないアプリアイコン上にバッジカウンターを望みます –

関連する問題