Notification.BuilderのsetLargeIconメソッドが、リソースIDを提供するためのオーバーロードなしでBitmapのみを受け入れるのはなぜか不思議です。おそらくそれはパフォーマンス上の理由から行われたかもしれませんが、setSmallIconはres drawable idを受け入れるので、奇妙に思えます。ハニカムの通知 - largeIconを適切なサイズに設定するにはどうすればよいですか?
Notification.Builder builder = new Notification.Builder(application);
// ....
builder.setLargeIcon(iconBitmap); // Requires a Bitmap
builder.setSmallIcon(iconResId); // Requires a drawable resource ID
Notification notification = builder.getNotification();
悲しいことに、提供されたビットマップは通知でスケーリングされないため、ビットマップは通知ビューに正確に適切なサイズで提供する必要があります。
私はlargeIconビットマップのxhdpi、hdpi、MDPIとLDPIバージョンを提供する必要があると仮定すると、彼らがするのかなサイズが必要ですか?私はドキュメントで、またはより広いWebを精査した後、言及を見ることができません。
ああ、それは面白いです。それらの値の単位が分かりますか(17104902、17104901) –
これはおそらくXMLのdpです。リソースを使用する場合getDimensionPixelSize()でそれらをpxで取得します。 – alexanderblom
ありがとうございました。これはうまくトリックを行います。私はビットマップが必要な理由を理解しています。ソーシャルメディア用に設計されたもので、人々の顔は通常、アプリと共に配布されません。 width = res.getDimensionPixelSize(android.R.dimen.notification_large_icon_width) –