গুগলের উদাহরণগুলির মতো একটি গণনা সহ অ্যাকশন বার বিজ্ঞপ্তি আইকনটি দেখানোর জন্য কি কোনও অ্যান্ড্রয়েড স্ট্যান্ডার্ড ব্যাজ বা পদ্ধতি আছে?
যদি তা না হয় তবে এটি তৈরির সর্বোত্তম উপায় কী?
আমি অ্যান্ড্রয়েডে নতুন, দয়া করে সহায়তা করুন।
গুগলের উদাহরণগুলির মতো একটি গণনা সহ অ্যাকশন বার বিজ্ঞপ্তি আইকনটি দেখানোর জন্য কি কোনও অ্যান্ড্রয়েড স্ট্যান্ডার্ড ব্যাজ বা পদ্ধতি আছে?
যদি তা না হয় তবে এটি তৈরির সর্বোত্তম উপায় কী?
আমি অ্যান্ড্রয়েডে নতুন, দয়া করে সহায়তা করুন।
উত্তর:
আমি নিশ্চিত নই যে এটিই সেরা সমাধান কিনা বা না, তবে এটি আমার প্রয়োজন।
ভাল পারফরম্যান্স বা গুণমানের জন্য কী পরিবর্তন করতে হবে তা আপনি যদি জানেন তবে দয়া করে আমাকে বলুন। আমার ক্ষেত্রে, আমার কাছে একটি বোতাম আছে।
আমার মেনুতে কাস্টম আইটেম - main.xML
<item
android:id="@+id/badge"
android:actionLayout="@layout/feed_update_count"
android:icon="@drawable/shape_notification"
android:showAsAction="always">
</item>
কাস্টম শেপ অঙ্কনযোগ্য (ব্যাকগ্রাউন্ড স্কোয়ার) - আকৃতি_নোটিকেশন.এক্সএমএল
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:color="#22000000" android:width="2dp"/>
<corners android:radius="5dp" />
<solid android:color="#CC0001"/>
</shape>
আমার দেখার জন্য লেআউট - ফিড_আপডেট_কাউন্ট.এক্সএমএল
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/notif_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="32dp"
android:minHeight="32dp"
android:background="@drawable/shape_notification"
android:text="0"
android:textSize="16sp"
android:textColor="@android:color/white"
android:gravity="center"
android:padding="2dp"
android:singleLine="true">
</Button>
মেইনএ্যাকটিভিটি - আমার দর্শন সেট করা এবং আপডেট করা
static Button notifCount;
static int mNotifCount = 0;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.main, menu);
View count = menu.findItem(R.id.badge).getActionView();
notifCount = (Button) count.findViewById(R.id.notif_count);
notifCount.setText(String.valueOf(mNotifCount));
return super.onCreateOptionsMenu(menu);
}
private void setNotifCount(int count){
mNotifCount = count;
invalidateOptionsMenu();
}
MenuItem item = menu.findItem(R.id.badge); MenuItemCompat.setActionView(item, R.layout.feed_update_count); notifCount = (Button) MenuItemCompat.getActionView(item);
android:icon="..."
মেনু আইটেম এক্সএমএলটিতে থাকা দরকার নেই। android:actionLayout="..."
সেখানে যথেষ্ট হয়। জন্য Button
বিন্যাস XML- এর, আপনি করতে পারেন স্ব-ক্লোজিং ট্যাগ ব্যবহার <Button ... />
কারণ ট্যাগটি বিষয়বস্তু থাকতে পারে না। আপনাকে <shape>
ট্যাগটি বন্ধ করতে হবে (আবার: স্ব-সমাপনি)। এবং আপনার দরকার নেই invalidateOptionsMenu()
। আমার জন্য, এটি এমনকি কাজ করে না, কারণ ব্যাজটি সর্বদা এক্সএমএল থেকে আবার স্ফীত হয়। সুতরাং, setNotifCount(...)
পুরোটি অকেজো। শুধু setText(...)
ব্যাজ কল করুন। আর তুমি কাস্ট করতে পারেন getActionView()
থেকে Button
সরাসরি।
সমর্থন লাইব্রেরির 26 বা সংস্করণটি সম্পাদনা করুন (বা অ্যান্ড্রয়েডেক্স) আপনাকে আর OnLongClickListener
সরঞ্জামটিপটি প্রদর্শন করতে একটি কাস্টম প্রয়োগ করতে হবে না । কেবল এটিকে কল করুন:
TooltipCompat.setTooltipText(menu_hotlist, getString(R.string.hint_show_hot_message));
কেউ এই জাতীয় কিছু চাইলে আমি কেবল আমার কোডটি ভাগ করব:
বিন্যাস / মেনু / menu_actionbar.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
...
<item android:id="@+id/menu_hotlist"
android:actionLayout="@layout/action_bar_notifitcation_icon"
android:showAsAction="always"
android:icon="@drawable/ic_bell"
android:title="@string/hotlist" />
...
</menu>
বিন্যাস / action_bar_notifitcation_icon.xml
নোট শৈলী এবং অ্যান্ড্রয়েড: ক্লিকযোগ্য বৈশিষ্ট্য। এগুলি লেআউটটিকে একটি বোতামের আকার দেয় এবং স্পর্শ করলে পটভূমি ধূসর করে তোলে।
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center"
android:layout_gravity="center"
android:clickable="true"
style="@android:style/Widget.ActionButton">
<ImageView
android:id="@+id/hotlist_bell"
android:src="@drawable/ic_bell"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_margin="0dp"
android:contentDescription="bell"
/>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/hotlist_hot"
android:layout_width="wrap_content"
android:minWidth="17sp"
android:textSize="12sp"
android:textColor="#ffffffff"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@null"
android:layout_alignTop="@id/hotlist_bell"
android:layout_alignRight="@id/hotlist_bell"
android:layout_marginRight="0dp"
android:layout_marginTop="3dp"
android:paddingBottom="1dp"
android:paddingRight="4dp"
android:paddingLeft="4dp"
android:background="@drawable/rounded_square"/>
</RelativeLayout>
অঙ্কনযোগ্য-xhdpi / ic_bell.png
সমস্ত দিক থেকে 10 পিক্সেল প্রশস্ত প্যাডিং সহ একটি 64x64 পিক্সেল চিত্র। আপনার কাছে 8 পিক্সেল প্রশস্ত প্যাডিংস থাকার কথা, তবে আমি বেশিরভাগ ডিফল্ট আইটেমগুলির চেয়ে কিছুটা ছোট দেখতে পাই। অবশ্যই, আপনি বিভিন্ন ঘনত্বের জন্য বিভিন্ন আকারের ব্যবহার করতে চাইবেন।
অঙ্কনযোগ্য / rounded_square.xml
এখানে, # ff222222 (আলফা # एफের সাথে রঙ # 222222 (সম্পূর্ণ দৃশ্যমান)) আমার অ্যাকশন বারের পটভূমির রঙ।
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="#ffff0000" />
<stroke android:color="#ff222222" android:width="2dp"/>
</shape>
কম / ubergeek42 / WeechatAndroid / WeechatActivity.java
এখানে আমরা এটি ক্লিকযোগ্য এবং আপডেটযোগ্য করে তুলি! আমি একটি বিমূর্ত শ্রোতা তৈরি করেছি যা অনলংকলিকে টোস্ট তৈরির ব্যবস্থা করে, কোডটি অ্যাকশনবারশারলকের উত্স থেকে নেওয়া হয়েছিল ।
private int hot_number = 0;
private TextView ui_hot = null;
@Override public boolean onCreateOptionsMenu(final Menu menu) {
MenuInflater menuInflater = getSupportMenuInflater();
menuInflater.inflate(R.menu.menu_actionbar, menu);
final View menu_hotlist = menu.findItem(R.id.menu_hotlist).getActionView();
ui_hot = (TextView) menu_hotlist.findViewById(R.id.hotlist_hot);
updateHotCount(hot_number);
new MyMenuItemStuffListener(menu_hotlist, "Show hot message") {
@Override
public void onClick(View v) {
onHotlistSelected();
}
};
return super.onCreateOptionsMenu(menu);
}
// call the updating code on the main thread,
// so we can call this asynchronously
public void updateHotCount(final int new_hot_number) {
hot_number = new_hot_number;
if (ui_hot == null) return;
runOnUiThread(new Runnable() {
@Override
public void run() {
if (new_hot_number == 0)
ui_hot.setVisibility(View.INVISIBLE);
else {
ui_hot.setVisibility(View.VISIBLE);
ui_hot.setText(Integer.toString(new_hot_number));
}
}
});
}
static abstract class MyMenuItemStuffListener implements View.OnClickListener, View.OnLongClickListener {
private String hint;
private View view;
MyMenuItemStuffListener(View view, String hint) {
this.view = view;
this.hint = hint;
view.setOnClickListener(this);
view.setOnLongClickListener(this);
}
@Override abstract public void onClick(View v);
@Override public boolean onLongClick(View v) {
final int[] screenPos = new int[2];
final Rect displayFrame = new Rect();
view.getLocationOnScreen(screenPos);
view.getWindowVisibleDisplayFrame(displayFrame);
final Context context = view.getContext();
final int width = view.getWidth();
final int height = view.getHeight();
final int midy = screenPos[1] + height / 2;
final int screenWidth = context.getResources().getDisplayMetrics().widthPixels;
Toast cheatSheet = Toast.makeText(context, hint, Toast.LENGTH_SHORT);
if (midy < displayFrame.height()) {
cheatSheet.setGravity(Gravity.TOP | Gravity.RIGHT,
screenWidth - screenPos[0] - width / 2, height);
} else {
cheatSheet.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, height);
}
cheatSheet.show();
return true;
}
}
app:actionLayout="@layout/action_bar_notifitcation_icon"
পরিবর্তে লাগাতে হবে । এপিআই স্তরের সাথে সামঞ্জস্যপূর্ণ নয় <১১android:actionLayout="@layout/action_bar_notifitcation_icon"
MenuItemCompat.getActionView
menu.findItem(R.id.menu_hotlist).getActionView();
MenuItem.getActionView
android:actionLayout
; অ্যাপকম্প্যাট: app:actionLayout
আপনার মেনু আইটেমটিতে।
শুধু যোগ করতে। যদি কেউ একটি পূর্ণ বৃত্ত বুদ্বুদ বাস্তবায়ন করতে চায়, কোডটি এখানে রাখুন (নাম দিন bage_circle.xml
):
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:useLevel="false"
android:thickness="9dp"
android:innerRadius="0dp"
>
<solid
android:color="#F00"
/>
<stroke
android:width="1dip"
android:color="#FFF" />
<padding
android:top="2dp"
android:bottom="2dp"/>
</shape>
আপনার প্রয়োজন অনুযায়ী আপনাকে পুরুত্ব সামঞ্জস্য করতে হতে পারে।
সম্পাদনা:
বোতামটির নাম (এখানে নাম দিন badge_layout.xml
):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.joanzapata.iconify.widget.IconButton
android:layout_width="44dp"
android:layout_height="44dp"
android:textSize="24sp"
android:textColor="@color/white"
android:background="@drawable/action_bar_icon_bg"
android:id="@+id/badge_icon_button"/>
<TextView
android:id="@+id/badge_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/badge_icon_button"
android:layout_alignRight="@id/badge_icon_button"
android:layout_alignEnd="@id/badge_icon_button"
android:text="10"
android:paddingEnd="8dp"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:gravity="center"
android:textColor="#FFF"
android:textSize="11sp"
android:background="@drawable/badge_circle"/>
</RelativeLayout>
মেনুতে আইটেম তৈরি করুন:
<item
android:id="@+id/menu_messages"
android:showAsAction="always"
android:actionLayout="@layout/badge_layout"/>
ইন onCreateOptionsMenu
মেনু আইটেমে পেতে রেফারেন্স:
itemMessages = menu.findItem(R.id.menu_messages);
badgeLayout = (RelativeLayout) itemMessages.getActionView();
itemMessagesBadgeTextView = (TextView) badgeLayout.findViewById(R.id.badge_textView);
itemMessagesBadgeTextView.setVisibility(View.GONE); // initially hidden
iconButtonMessages = (IconButton) badgeLayout.findViewById(R.id.badge_icon_button);
iconButtonMessages.setText("{fa-envelope}");
iconButtonMessages.setTextColor(getResources().getColor(R.color.action_bar_icon_color_disabled));
iconButtonMessages.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (HJSession.getSession().getSessionId() != null) {
Intent intent = new Intent(getThis(), HJActivityMessagesContexts.class);
startActivityForResult(intent, HJRequestCodes.kHJRequestCodeActivityMessages.ordinal());
} else {
showLoginActivity();
}
}
});
বার্তাগুলির জন্য বিজ্ঞপ্তি পাওয়ার পরে, গণনাটি সেট করুন:
itemMessagesBadgeTextView.setText("" + count);
itemMessagesBadgeTextView.setVisibility(View.VISIBLE);
iconButtonMessages.setTextColor(getResources().getColor(R.color.white));
এই কোডটি আইকনফাই-ফন্টউভাল ব্যবহার করে ।
compile 'com.joanzapata.iconify:android-iconify-fontawesome:2.1.+'
আমি ActionView
ভিত্তিক সমাধান পছন্দ করি না , আমার ধারণাটি হ'ল:
TextView
, এটি TextView
অ্যাপ্লিকেশন দ্বারা পপুলেশন হবেযখন আপনার একটি আঁকতে হবে MenuItem
:
2.1। স্ফীত লেআউট
2.2। কল measure()
& layout()
(অন্যথায় 0 view
px x 0px হবে, বেশিরভাগ ব্যবহারের ক্ষেত্রে এটি খুব ছোট)
2.3। TextView
এর পাঠ্য সেট করুন
2.4। দৃশ্যটির "স্ক্রিনশট" তৈরি করুন
2.6। MenuItem
২.৪-তে নির্মিত বিটম্যাপের ভিত্তিতে আইকন সেট করুন
লাভ!
সুতরাং, ফলাফল কিছু হতে হবে
<?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/ic_menu_gallery"> <RelativeLayout android:id="@+id/counterValuePanel" android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:id="@+id/counterBackground" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/unread_background" /> <TextView android:id="@+id/count" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" android:textSize="8sp" android:layout_centerInParent="true" android:textColor="#FFFFFF" /> </RelativeLayout> </FrameLayout>
@drawable/unread_background
এই যে সবুজ রঙের TextView
পটভূমি,
@drawable/ic_menu_gallery
এখানে সত্যিই প্রয়োজন হয় না, এটি কেবল আইডিইতে লেআউটের ফলাফলের পূর্বরূপ দেখতে।
onCreateOptionsMenu
/ এ কোড যুক্ত করুনonPrepareOptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem menuItem = menu.findItem(R.id.testAction);
menuItem.setIcon(buildCounterDrawable(count, R.drawable.ic_menu_gallery));
return true;
}
আইকনটি বিল্ড-দ্য আইকনটি প্রয়োগ করুন:
private Drawable buildCounterDrawable(int count, int backgroundImageId) {
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.counter_menuitem_layout, null);
view.setBackgroundResource(backgroundImageId);
if (count == 0) {
View counterTextPanel = view.findViewById(R.id.counterValuePanel);
counterTextPanel.setVisibility(View.GONE);
} else {
TextView textView = (TextView) view.findViewById(R.id.count);
textView.setText("" + count);
}
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);
}
সম্পূর্ণ কোডটি এখানে: https://github.com/cvoronin/ActionBarMenuItemCounter
ঠিক আছে, v7 অ্যাপকম্প্যাট লাইব্রেরির সাথে কাজ করার জন্য @ অ্যান্ড্রুসের সমাধানের জন্য :
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:someNamespace="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/saved_badge"
someNamespace:showAsAction="always"
android:icon="@drawable/shape_notification" />
</menu>
।
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
inflater.inflate(R.menu.main, menu);
MenuItem item = menu.findItem(R.id.saved_badge);
MenuItemCompat.setActionView(item, R.layout.feed_update_count);
View view = MenuItemCompat.getActionView(item);
notifCount = (Button)view.findViewById(R.id.notif_count);
notifCount.setText(String.valueOf(mNotifCount));
}
private void setNotifCount(int count){
mNotifCount = count;
supportInvalidateOptionsMenu();
}
কোডের বাকি অংশগুলি একই।
android:actionLayout
করার পরে app:actionLayout
মোহন করার মতো কাজ করে।
এই প্রশ্নের উত্তরগুলি দেখার চেষ্টা করুন, বিশেষত দ্বিতীয়টি যা স্যাম্পল কোড রয়েছে:
অ্যান্ড্রয়েডে মেনু আইটেমে কীভাবে গতিশীল মানগুলি প্রয়োগ করা যায়
অ্যাকশনবার আইকনটিতে কীভাবে পাঠ্য পাবেন?
আমি যা দেখছি তা থেকে আপনাকে নিজের কাস্টম ActionView
বাস্তবায়ন তৈরি করতে হবে । বিকল্প একটি কাস্টম হতে পারে Drawable
। নোট করুন যে অ্যাকশন বারের জন্য কোনও বিজ্ঞপ্তি গণনার কোনও নেটিভ প্রয়োগ নেই বলে মনে হচ্ছে।
সম্পাদনা: কোডটি সহ আপনি যে উত্তরটি সন্ধান করেছিলেন তা: নমুনা বাস্তবায়নের সাথে কাস্টম বিজ্ঞপ্তি দেখুন
Drawable
: S নিম্নলিখিত দুটি লিঙ্ক দেখা stackoverflow.com/questions/6691818/... এবং stackoverflow.com/questions/3972445/...
Drawable
লিঙ্কের মতো কোনও কিছুর মাধ্যমে কাস্টম এক্সএমএল বৈশিষ্ট্য তৈরি করতে সক্ষম হবেন এবং তারপরে আপনার কাস্টমটির জন্য এমন একটি বৈশিষ্ট্য তৈরি করতে সক্ষম হবেন যাতে আপনি পুরো জিনিসটি তৈরি করতে পারেন এক্সএমএলে এবং আপনার ইচ্ছামতো এটি ফিট করুন। বিকল্পভাবে, আপনি জাভাতে অঙ্কনযোগ্য যুক্ত করতে পারেন যদি এটি খুব শক্ত হয়। Drawable
আপনি যখন সরঞ্জামদণ্ড ব্যবহার করবেন:
....
private void InitToolbar() {
toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
toolbartitle = (TextView) findViewById(R.id.titletool);
toolbar.inflateMenu(R.menu.show_post);
toolbar.setOnMenuItemClickListener(this);
Menu menu = toolbar.getMenu();
MenuItem menu_comments = menu.findItem(R.id.action_comments);
MenuItemCompat
.setActionView(menu_comments, R.layout.menu_commentscount);
View v = MenuItemCompat.getActionView(menu_comments);
v.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// Your Action
}
});
comment_count = (TextView) v.findViewById(R.id.count);
}
এবং আপনার লোড ডেটা কল রিফ্রেশমেনু ():
private void refreshMenu() {
comment_count.setVisibility(View.VISIBLE);
comment_count.setText("" + post_data.getComment_count());
}
আমি একটি খুব ভাল সমাধান পাওয়া এখানে , আমি এটি কোটলিনের সাথে ব্যবহার করছি।
প্রথমত, অঙ্কনযোগ্য ফোল্ডারে আপনাকে তৈরি করতে হবে item_count.xml
:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="8dp" />
<solid android:color="#f20000" />
<stroke
android:width="2dip"
android:color="#FFF" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
আপনার Activity_Main
লেআউটে কিছু পছন্দ:
<RelativeLayout
android:id="@+id/badgeLayout"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_toRightOf="@+id/badge_layout1"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="5dp">
<RelativeLayout
android:id="@+id/relative_layout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/btnBadge"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/ic_notification" />
</RelativeLayout>
<TextView
android:id="@+id/txtBadge"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_alignRight="@id/relative_layout1"
android:background="@drawable/item_count"
android:text="22"
android:textColor="#FFF"
android:textSize="7sp"
android:textStyle="bold"
android:gravity="center"/>
</RelativeLayout>
এবং আপনি এই মত পরিবর্তন করতে পারেন:
btnBadge.setOnClickListener { view ->
Snackbar.make(view,"badge click", Snackbar.LENGTH_LONG) .setAction("Action", null).show()
txtBadge.text = "0"
}
আমি এটি করার আরও ভাল উপায় খুঁজে পেয়েছি। আপনি যদি এই জাতীয় কিছু ব্যবহার করতে চান
এই নির্ভরতা ব্যবহার করুন
compile 'com.nex3z:notification-badge:0.1.0'
অঙ্কনযোগ্য একটি এক্সএমএল ফাইল তৈরি করুন এবং এটি ব্যাজ.এক্সএমএল হিসাবে সংরক্ষণ করুন
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<solid android:color="#66000000"/>
<size android:width="30dp" android:height="40dp"/>
</shape>
</item>
<item android:bottom="1dp" android:right="0.6dp">
<shape android:shape="oval">
<solid android:color="@color/Error_color"/>
<size android:width="20dp" android:height="20dp"/>
</shape>
</item>
</layer-list>
এখন আপনি যেখানেই ব্যাজটি ব্যবহার করতে চান xML এ নিম্নলিখিত কোডগুলি ব্যবহার করুন। এর সাহায্যে আপনি নিজের ইমেজের উপরের-ডানদিকে যে ব্যাজটি দেখতে পাবেন বা যে কোনও কিছু করতে পারবেন।
<com.nex3z.notificationbadge.NotificationBadge
android:id="@+id/badge"
android:layout_toRightOf="@id/Your_ICON/IMAGE"
android:layout_alignTop="@id/Your_ICON/IMAGE"
android:layout_marginLeft="-16dp"
android:layout_marginTop="-8dp"
android:layout_width="28dp"
android:layout_height="28dp"
app:badgeBackground="@drawable/Badge"
app:maxTextLength="2"
></com.nex3z.notificationbadge.NotificationBadge>
এখন অবশেষে আপনার ফাইল.জভাতে এই 2 সাধারণ জিনিসটি ব্যবহার করুন .. 1) সংজ্ঞা দিন
NotificationBadge mBadge;
2) যেখানে আপনার লুপ বা যে কোনও কিছু যা এই সংখ্যাটি গণনা করছে এটি ব্যবহার করে:
mBadge.setNumber(your_LoopCount);
এখানে, mBadge.setNumber(0)
কিছুই দেখাবে না।
এই সাহায্য আশা করি।