আমার কাছে একটি অ্যাপ্লিকেশন রয়েছে যা কাস্টম বিজ্ঞপ্তিগুলি দেখায়। সমস্যাটি হ'ল অ্যান্ড্রয়েড 5 এ চলার সময় নোটিফিকেশন বারের ছোট আইকনটি সাদা দেখানো হয়। আমি এটা কিভাবে ঠিক করবো?
আমার কাছে একটি অ্যাপ্লিকেশন রয়েছে যা কাস্টম বিজ্ঞপ্তিগুলি দেখায়। সমস্যাটি হ'ল অ্যান্ড্রয়েড 5 এ চলার সময় নোটিফিকেশন বারের ছোট আইকনটি সাদা দেখানো হয়। আমি এটা কিভাবে ঠিক করবো?
উত্তর:
গৃহীত উত্তর (সম্পূর্ণ) সঠিক নয়। অবশ্যই, এটি নোটিফিকেশন আইকনগুলিকে রঙিন করে দেখায়, তবে এটি একটি বড় ত্রুটি সহ করে - লক্ষ্য এসডিকে অ্যান্ড্রয়েড ললিপপের চেয়ে কমতে সেট করে!
প্রস্তাবিত হিসাবে, আপনি যদি আপনার টার্গেট এসডিকে ২০ তে সেট করে আপনার সাদা আইকন সমস্যাটি সমাধান করেন তবে আপনার অ্যাপটি অ্যান্ড্রয়েড ললিপপকে লক্ষ্য করবে না, যার অর্থ আপনি ললিপপ-নির্দিষ্ট বৈশিষ্ট্য ব্যবহার করতে পারবেন না।
Http://developer.android.com/design/style/iconography.html দেখুন এবং আপনি দেখতে পাবেন যে সাদা স্টাইলটি কীভাবে বিজ্ঞপ্তিগুলি অ্যান্ড্রয়েড ললিপপে প্রদর্শিত হবে।
ললিপপ-এ, গুগলও আপনাকে পরামর্শ দেয় যে আপনি এমন একটি রঙ ব্যবহার করুন যা (সাদা) বিজ্ঞপ্তি আইকনের পিছনে প্রদর্শিত হবে - https://developer.android.com/about/versions/android-5.0-changes.html
সুতরাং, আমি মনে করি যে আরও ভাল সমাধান হ'ল অ্যাপটিতে একটি সিলুয়েট আইকন যুক্ত করা এবং ডিভাইসটি অ্যান্ড্রয়েড ললিপপ চলমান থাকলে এটি ব্যবহার করা।
এই ক্ষেত্রে:
Notification notification = new Notification.Builder(context)
.setAutoCancel(true)
.setContentTitle("My notification")
.setContentText("Look, white in Lollipop, else color!")
.setSmallIcon(getNotificationIcon())
.build();
return notification;
এবং, getNotificationsIcon পদ্ধতিতে:
private int getNotificationIcon() {
boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
return useWhiteIcon ? R.drawable.icon_silhouette : R.drawable.ic_launcher;
}
ctrl+f
এবং টাইপ করা notification
যে পেজটি কিছু খুঁজে পাচ্ছি না উপর ...
ব্যবহারকারী ড্যানিয়েল সাইদির সাথে সম্পূর্ণরূপে একমত। Color
যাতে NotificationIcon
আমি এই উত্তরটি লিখছি তাই করার জন্য ।
তার জন্য আপনাকে আইকনটি তৈরি করতে হবে Silhouette
এবং Transparent
যেখানেই আপনি যুক্ত করতে চান সেখানে কিছু বিভাগ তৈরি করতে হবে Colors
। অর্থাত,
ব্যবহার করে আপনি নিজের রঙ যুক্ত করতে পারেন
.setColor(your_color_resource_here)
দ্রষ্টব্য: setColor
কেবলমাত্র এতে উপলব্ধ Lollipop
, আপনাকে যাচাই করতে হবেOSVersion
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
Notification notification = new Notification.Builder(context)
...
} else {
// Lollipop specific setColor method goes here.
Notification notification = new Notification.Builder(context)
...
notification.setColor(your_color)
...
}
আপনি Lollipop
লক্ষ্য হিসাবে ব্যবহার করে এটি অর্জন করতে পারেন SDK
।
গুগল বিকাশকারী কনসোল বিজ্ঞপ্তি গাইড লাইনগুলিতেNotificationIcon
প্রদত্ত সম্পর্কিত সমস্ত নির্দেশনা ।
পছন্দসই বিজ্ঞপ্তি আইকন আকার 24x24dp
mdpi @ 24.00dp = 24.00px
hdpi @ 24.00dp = 36.00px
xhdpi @ 24.00dp = 48.00px
এবং আরও তথ্যের জন্য বিজ্ঞপ্তি আইকন আকারের জন্য এই লিঙ্কটি উল্লেখ করুন ।
setColor
কিটক্যাট (এপিআই 19) এবং আইসক্রিমস্যান্ডউইচ (এপিআই 15) পরীক্ষা করেছি , উভয় ক্ষেত্রেই রঙটি উপেক্ষা করেছে তবে ক্রাশ হয়নি । সুতরাং আমি ওএস সংস্করণ চেক করে নিরাপদে বাদ দিতে পারি?
অ্যানড্রয়েডটি নোটিফিকেশন আইকনগুলি প্রদর্শনের জন্য এই কোডটি ব্যবহার করে:
// android_frameworks_base/packages/SystemUI/src/com/android/systemui/
// statusbar/BaseStatusBar.java
if (entry.targetSdk >= Build.VERSION_CODES.LOLLIPOP) {
entry.icon.setColorFilter(mContext.getResources().getColor(android.R.color.white));
} else {
entry.icon.setColorFilter(null);
}
সুতরাং আপনাকে লক্ষ্য এসডিকে কোনও সংস্করণ সেট করতে হবে <21
এবং আইকনগুলি রঙিন থাকবে। এটি একটি কুরুচিপূর্ণ কাজ কিন্তু এটি যা প্রত্যাশা করে তা করে। যাইহোক, আমি সত্যিই গুগলের নকশা নির্দেশিকা অনুসরণ করার পরামর্শ দিচ্ছি : "বিজ্ঞপ্তি আইকনগুলি অবশ্যই পুরোপুরি সাদা হতে হবে।"
আপনি এটি কীভাবে বাস্তবায়ন করতে পারেন তা এখানে:
আপনি যদি আপনার অ্যাপ্লিকেশনগুলি তৈরি করতে গ্রেডল / অ্যান্ড্রয়েড স্টুডিও ব্যবহার করেন তবে ব্যবহার করুন build.gradle
:
defaultConfig {
targetSdkVersion 20
}
অন্যথায় (গ্রহণ ইত্যাদি) AndroidManifest.xml
:
<uses-sdk android:minSdkVersion="..." android:targetSdkVersion="20" />
সাদা হওয়ার জন্য বিজ্ঞপ্তি আইকনগুলি এড়ানোর জন্য, তাদের জন্য "সিলুয়েট" আইকনগুলি ব্যবহার করুন, যেমন। সাদা অন স্বচ্ছ পটভূমি চিত্র। এগুলি তৈরি করতে আপনি ইরফানভিউ ব্যবহার করতে পারেন :
IrfanView
, পেইন্টিং সরঞ্জামগুলির জন্য F12 টিপুন, প্রয়োজনে পরিষ্কার ছবি (অযাচিত অংশগুলি সরিয়ে দিন, মসৃণ এবং পোলিশ করুন)Image / Decrease Color Depth
2 এ (একটি কালো এবং সাদা ছবির জন্য)Image / Negative
(কালো ছবিতে একটি সাদা জন্য)Image / Resize/Resample
144 x 144 (আকারের পদ্ধতিটি "পুনরায় আকার দিন" "পুনরায় নমুনা" ব্যবহার করুন, অন্যথায় ছবিতে পিক্সেলটিতে 24 রঙ বিট (24 বিপিপি) আবার বাড়ানো হয়েছেFile / Save as PNG
, চেক Show option dialog
, চেক Save Transparent Color
, ক্লিক করুন Save
, তারপরে স্বচ্ছ রঙ সেট করতে ইমেজের কালো রঙে ক্লিক করুনঅ্যান্ড্রয়েড কেবল অঙ্কনযোগ্য-এক্সএক্সএইচডিপি পিকচার রেজোলিউশন (144 x 144) ব্যবহার করছে বলে মনে হচ্ছে, সুতরাং আপনার ফলাফলটি ic_notification.png
ফাইলটিতে অনুলিপি করুন \AndroidStudio\Projects\...\app\src\main\res\drawable-xxhdpi
। .setSmallIcon(R.drawable.ic_notification)
আপনার কোড ব্যবহার করুন , বা getNotificationIcon()
ড্যানিয়েল সাইদী উপরে প্রস্তাবিত হিসাবে ব্যবহার করুন ।
আপনি রোমান নুরিকের অ্যান্ড্রয়েড অ্যাসেট স্টুডিওও ব্যবহার করতে পারেন ।
অন্য বিকল্পটি হ'ল ললিপপ এবং উপরের জন্য বিভিন্ন গ্রাফিক সরবরাহ করার জন্য সংস্করণ-নির্দিষ্ট অঙ্কনযোগ্য (মাইপম্যাপ) ডিরেক্টরিগুলির সুবিধা নেওয়া।
আমার অ্যাপ্লিকেশনটিতে, "ভি 21" ডিরেক্টরিতে স্বচ্ছ পাঠ্যযুক্ত আইকন রয়েছে যখন অন্য ডিরেক্টরিগুলিতে অপ-স্বচ্ছ সংস্করণ থাকে (ললিপপের চেয়ে পুরানো Android এর সংস্করণগুলির জন্য) for
যা দেখতে এই জাতীয় কিছু দেখা উচিত:
এইভাবে, আপনাকে কোডে সংস্করণ নম্বরগুলি পরীক্ষা করার দরকার নেই
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_notification)
.setContentTitle(title)
.setContentText(message)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
তেমনিভাবে, আপনি যদি "আইকন" বৈশিষ্ট্যটি ব্যবহার করেন তবে আপনি আপনার জিসিএম পেলোডে "আইসি_নোটিকেশন" (বা আপনি যা কল করতে পছন্দ করেন) তা উল্লেখ করতে পারেন।
https://developers.google.com/cloud-messaging/http-server-ref#notification-payload-support
setColor
(অতিরিক্ত কোড জড়িত না করে) সেট করতে পারেন ?
অ্যান্ড্রয়েড ডিজাইনের গাইডলাইন অনুসারে আপনার অবশ্যই একটি সিলুয়েট ব্যবহার করতে হবে builder.setSmallIcon(R.drawable.some_notification_icon);
তবে আপনি যদি এখনও কোনও নোটিফিকেশন আইকন হিসাবে রঙিন আইকনটি দেখতে চান তবে ললিপপ এবং উপরের কোডের নীচে ব্যবহারের কৌশল। লার্জ আইকন একটি প্রাথমিক বিজ্ঞপ্তি আইকন হিসাবে কাজ করবে এবং আপনাকে ছোট আইকনের জন্য একটি সিলুয়েট সরবরাহ করতে হবে কারণ এটি লার্জ আইকনের নীচে ডানদিকে প্রদর্শিত হবে।
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
builder.setColor(context.getResources().getColor(R.color.red));
builder.setSmallIcon(R.drawable.some_notification_icon);
builder.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher));
}
এবং প্রি-ললিপপ কেবল .setSmallIcon(R.mipmap.ic_launcher)
আপনার বিল্ডারের সাথে ব্যবহার করুন ।
এখন অ্যান্ড্রয়েড স্টুডিওতে একটি প্লাগইন ইমেজ অ্যাসেট সরবরাহ করা হচ্ছে যা সমস্ত প্রয়োজনীয় ড্রাবল ফোল্ডারে আইকন উত্পন্ন করবে
চিত্র সম্পদ স্টুডিও আপনাকে বিভিন্ন ঘনত্বে বিভিন্ন ধরণের আইকন তৈরি করতে সহায়তা করে এবং সেগুলি আপনার প্রকল্পে কোথায় স্থাপন করা হবে তা আপনাকে সঠিকভাবে দেখায়। এটিতে আপনার আইকনগুলি সামঞ্জস্য করার জন্য এবং ব্যাকড্রপগুলি যুক্ত করার জন্য সরঞ্জামগুলি অন্তর্ভুক্ত রয়েছে, সবকটি পূর্বরূপ ফলকে ফলাফল প্রদর্শন করার সময়, যাতে সেগুলি আপনার ইচ্ছা মতো ঠিক উপস্থিত হয়। এই সরঞ্জামগুলি আইকন ডিজাইন এবং আমদানি প্রক্রিয়াটি নাটকীয়ভাবে প্রবাহিত করতে পারে।
আপনি অ্যাক্সেস করতে পারেন ভাবমূর্তি অ্যাসেট > নতুন ক্লিক করে ভাবমূর্তি অ্যাসেট বিকল্প উপর ক্লিক করুন এবং এটা ভালো প্রদর্শনী জানালা হতে হবে: -
আমি একই সমস্যার মুখোমুখি হয়েছি এবং এটি আমার অ্যাপ্লিকেশন বিজ্ঞপ্তির আইকনটি সমতল নয় বলেই হয়েছিল। অ্যান্ড্রয়েড সংস্করণ ললিপপ বা ললিপপের নীচে এমনকি আপনার অ্যাপের বিজ্ঞপ্তি আইকনটি সমতল হওয়া উচিত, ছায়াগুলি সহ আইকন ব্যবহার করবেন না etc.
নীচে এমন কোড রয়েছে যা সমস্ত অ্যান্ড্রয়েড সংস্করণে পুরোপুরি সূক্ষ্মভাবে কাজ করেছিল।
private void sendNotification(String msg) {
NotificationManager mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
Intent intent = new Intent(this, CheckOutActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
this).setSmallIcon(R.drawable.ic_notification)
.setContentTitle(getString(R.string.app_name))
.setStyle(new NotificationCompat.BigTextStyle().bigText(msg))
.setContentText(msg).setLights(Color.GREEN, 300, 300)
.setVibrate(new long[] { 100, 250 })
.setDefaults(Notification.DEFAULT_SOUND).setAutoCancel(true);
mBuilder.setContentIntent(contentIntent);
mNotificationManager.notify(new Random().nextInt(), mBuilder.build());
}
ভুল আইকন
ডান আইকন
আলফা-চ্যানেলটি সেই চিত্রটির একমাত্র ডেটা যা অ্যান্ড্রয়েড বিজ্ঞপ্তি আইকনগুলির জন্য ব্যবহার করে:
alpha == 1
: পিক্সেল সাদা দেখায়alpha == 0
: পিক্সেলগুলি আপনি বেছে নেওয়া রঙ হিসাবে দেখায় Notification.Builder#setColor(int)
এটি https://developer.android.com/about/versions/android-5.0-changes.html তে উল্লেখ করা হয়েছে :
সিস্টেম অ্যাকশন আইকনগুলিতে এবং প্রধান বিজ্ঞপ্তি আইকনে সমস্ত অ-আলফা চ্যানেল উপেক্ষা করে। আপনার অনুমান করা উচিত যে এই আইকনগুলি কেবলমাত্র আলফা হবে।
প্রায় সমস্ত অন্তর্নির্মিত অঙ্কনগুলি এটির জন্য উপযুক্ত আলফা চিত্র হিসাবে মনে হয়, তাই আপনি কিছু ব্যবহার করতে পারেন:
Notification.Builder.setColor(Color.RED)
.setSmallIcon(android.R.drawable.star_on)
তবে আমি এখনও এপিআই ডকটি খুঁজছি যা আনুষ্ঠানিকভাবে এটির নিশ্চিত করে।
অ্যান্ড্রয়েড 22 এ পরীক্ষা করা হয়েছে।
setColor
কিটক্যাট (এপিআই 19) এবং আইসক্রিমস্যান্ডউইচ (এপিআই 15) এ পরীক্ষা করেছি , উভয় ক্ষেত্রেই এটি রঙটিকে উপেক্ষা করেছে তবে ক্রাশ হয়নি । সুতরাং আমি ওএস সংস্করণ চেক করে নিরাপদে বাদ দিতে পারি?
android:targetSdkVersion="21"
ম্যানিফেস্ট.এক্সএমএল থেকে সরান । এটা কাজ করবে! এবং এটি থেকে আপনার এপিকে তেমন কোনও সমস্যা নেই এটি কেবল একটি কৌশল আমি এটি প্রয়োগ করি এবং বিজ্ঞপ্তিতে রঙিন আইকনটি পেয়েছি
নীচে বর্ণিত বিজ্ঞপ্তিগুলি গ্রেস্কেল are অন্যেরা যা লিখেছিল তা সত্ত্বেও এগুলি কালো-সাদা নয়। আপনি সম্ভবত নেটওয়ার্ক স্ট্যান্ড বারের মতো একাধিক শেডযুক্ত আইকন দেখেছেন।
API 21 এর আগে (ললিপপ 5.0), রঙের আইকনগুলি কাজ করে। আপনি আপনার অ্যাপ্লিকেশনটিকে এপিআই 20 টার্গেট করতে বাধ্য করতে পারেন, তবে এটি আপনার অ্যাপ্লিকেশনটিতে উপলব্ধ বৈশিষ্ট্যগুলিকে সীমাবদ্ধ করে, তাই এটি প্রস্তাবিত নয়। আপনি চলমান এপিআই স্তরটি পরীক্ষা করতে পারেন এবং কোনও রঙিন আইকন বা গ্রেস্কেল আইকনটি যথাযথভাবে সেট করতে পারেন তবে সম্ভবত এটি কার্যকর নয়। বেশিরভাগ ক্ষেত্রে, গ্রেস্কেল আইকনটি সহ সবচেয়ে ভাল।
চিত্রগুলির চারটি চ্যানেল রয়েছে, আরজিবিএ (লাল / সবুজ / নীল / আলফা)। বিজ্ঞপ্তি আইকনগুলির জন্য, অ্যান্ড্রয়েড আর, জি এবং বি চ্যানেলগুলি উপেক্ষা করে। একমাত্র চ্যানেল যা গণনা করে তা হ'ল আলফা, এটি অস্বচ্ছতা হিসাবেও পরিচিত। এমন একটি সম্পাদক দিয়ে আপনার আইকনটি তৈরি করুন যা আপনাকে আপনার আঁকার রঙের আলফা মান নিয়ন্ত্রণ করতে পারে।
আলফা মানগুলি কীভাবে গ্রেস্কেল চিত্র তৈরি করে:
এটি দিয়ে পরিবর্তন করা setColor
:
কল করুন NotificationCompat.Builder.setColor(int argb)
। এর জন্য ডকুমেন্টেশন থেকে Notification.color
:
এই বিজ্ঞপ্তিটি উপস্থাপন করার সময় মানক স্টাইল টেম্পলেটগুলি প্রয়োগ করার জন্য অ্যাকসেন্ট রঙ (রঙের ধ্রুবকের মতো একটি এআরজিবি পূর্ণসংখ্যার)। বর্তমান টেমপ্লেট ডিজাইনটি এই রঙের একটি ক্ষেত্রের উপরে আইকন চিত্রটি (সাদা রঙে স্টেনসিল্ড করা) ওভারলেল করে একটি বর্ণময় হেডার চিত্র তৈরি করে r আলফা উপাদানগুলি উপেক্ষা করা হয়।
SetColor শো সঙ্গে আমার পরীক্ষামূলক আলফা উপাদান না উপেক্ষিত; পরিবর্তে, তারা এখনও গ্রেস্কেল সরবরাহ করে। উচ্চতর আলফা মানগুলি একটি পিক্সেল সাদা হয়ে যায়। লোয়ার আলফা মানগুলি বিজ্ঞপ্তি অঞ্চলে ব্যাকগ্রাউন্ড বর্ণ (আমার ডিভাইসে কালো) বা টান-ডাউন বিজ্ঞপ্তিতে নির্দিষ্ট রঙে একটি পিক্সেল ঘুরিয়ে দেয়। (দেখে মনে হচ্ছে অন্যরা কিছুটা ভিন্ন আচরণের প্রতিবেদন করেছেন, তাই সচেতন হন!)
পোস্ট অ্যান্ড্রয়েড ললিপপ রিলিজ অ্যান্ড্রয়েড বিজ্ঞপ্তি বারে বিজ্ঞপ্তি আইকন প্রদর্শনের জন্য নির্দেশিকা পরিবর্তন করেছে। অফিসিয়াল ডকুমেন্টেশনে বলা হয়েছে "রঙ জড়িত সম্পদগুলি আপডেট করুন বা সরান। এবং অ্যাকশন আইকনগুলি গা dark় ধূসর। এখন ম্যান শর্তগুলির অর্থ যা হ'ল "সেই চিত্রের সমস্ত অংশ রূপান্তর করুন যা আপনি স্বচ্ছ পিক্সেলগুলিতে দেখাতে চান না। সমস্ত বর্ণ এবং স্বচ্ছ পিক্সেল সাদাতে প্রদর্শিত হয় "
আপনি এখানে স্ক্রিনশটগুলির সাথে কীভাবে বিশদটি করবেন তা দেখতে পারেন https://blog.clevertap.com/fixing-notifications-icon-for-android-lollipop-and-above/
আশা করি এইটি কাজ করবে
আপনাকে একক রঙের স্বচ্ছ পিএনজি চিত্র আমদানি করতে হবে। সুতরাং আপনি ছোট আইকনের আইকন রঙ সেট করতে পারেন। অন্যথায় এটি মোটোর মতো কিছু ডিভাইসে সাদা দেখানো হবে
আপনি যদি গুগলফায়ারবেসমেজিং ব্যবহার করছেন, আপনি "বিজ্ঞপ্তি" পেডে "আইকন আইডি" সেট করতে পারেন (এটি আমাকে সাদা বার আইকন সমস্যা সমাধানে সহায়তা করে):
{
"to":"<fb_id>",
"priority" : "high",
"notification" :
{
"title" : "title",
"body" : "body" ,
"sound" : "default",
"icon" : "ic_notification"
}
}
সেট ic_notification R.drawable থেকে আপনার নিজের আইডি।
আমি এটিতেও অনেক সমস্যার মুখোমুখি হয়েছি তবে পুরো ইন্টারনেটে অনুসন্ধান করার পরে আমি এই সমস্যার জন্য বিভিন্ন সমাধান পেয়েছি me আমাকে সমস্ত সমাধানের সংকলন করে ব্যাখ্যা করুন:
দ্রষ্টব্য: এই সমাধানটি ফোনগ্যাপ কর্ডোভা ব্যবহারকারীদের জন্য
<preference name="android-targetSdkVersion" value="20"/>
আপনাকে আপনার অ্যান্ড্রয়েড-টার্গেটএসডিপি ভার্সন মান 21 এরও কম সেট করতে হবে So সুতরাং এই মানটি সেট করার পরে বিজ্ঞপ্তি আইকন চিত্রটি অ্যান্ড্রয়েড 6 (মার্শমালো) অবধি প্রদর্শিত হবে, এটি অ্যান্ড্রয়েড 7 (নওগ্যাট) এ কাজ করবে না। এই সমাধানটি আমার পক্ষে কাজ করেছিল।
<preference name="StatusBarStyle" value="lightcontent" />
তবে এই অ্যাপ্লিকেশনটি কেবল তখনই কার্যকর হবে যখন আপনার অ্যাপ্লিকেশনটি খোলা হবে। সুতরাং, আমি অনুমান করি যে এই সমাধানটি সেরা সমাধান নয় তবে এটি অনেক ব্যবহারকারীর পক্ষে কাজ করেছে।
এবং আমি নিশ্চিত যে উপরের সমাধানগুলির মধ্যে একটি আপনার সমস্যার জন্য কাজ করবে।
আমি মনে করি এপিআই 21 সম্পর্কে কথা বলতে দেরি হয়ে গেছে তবে আমি একটি সহজ উপায় খুঁজে পেয়েছি।
'কাস্টম বিজ্ঞপ্তি (কাস্টম বিন্যাস)' এর ব্যবহার করার সময়,
RemoteView এর
setImageViewResource(int viewId, int srcId);
এবং
setImageViewUri(int viewId, Uri uri);
ললিপপ (এপিআই 21) এ সেই চিত্রগুলি সাদা করে তোলে।
কিন্তু ব্যবহার করার সময়
setImageViewBitmap(int viewId, Bitmap bitmap);
চিত্র সাদা মুখোশযুক্ত হয়ে ওঠে না!
ডকুমেন্টেশন অনুসারে, অ্যান্ড্রয়েড 3.0 (এপিআই স্তর 11) থেকে বিজ্ঞপ্তি আইকনটি অবশ্যই সাদা হতে হবে :
https://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar
"স্ট্যাটাস বার আইকনগুলি স্বচ্ছ ব্যাকড্রপগুলিতে কেবল সাদা পিক্সেলের সমন্বয়ে তৈরি করা হয়, যেখানে উপযুক্ত যেখানে মসৃণ প্রান্ত এবং অভ্যন্তরীণ টেক্সচারের জন্য আলফা মিশ্রণ ব্যবহৃত হয়।"
অ্যাপ গ্রেডে এই দুটি জিনিস মিশ্রিত করুন
defaultConfig {
applicationId "com.example.abdulwahidvi.notificationproblem"
minSdkVersion 16
//This is the version that was added by project by default
targetSdkVersion 26 <------ default
// Changed it to version 20
targetSdkVersion 20 <------ mine
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
android:targetSdkVersion="20"
এটি হওয়া উচিত < 21
।