読者です 読者をやめる 読者になる 読者になる

知行合一

とか言ってみる

【Android】通知アイコンの変更方法

Android Tips #23 Android4.1 で追加された Notification のスタイルを使いこなす | Developers.IO

この辺。
ディレクトリの構成だけど、
ldpi, mdpi...と解像度ごとに分けるわけなのだが、今回はアイコンぐらいしか分ける必要なかった気がする...。
分けていたら見た目もっと綺麗になっていたのかもしれない。。

    private void sendNotification(String msg) {
        final NotificationManager notificationManager = (NotificationManager)
                this.getSystemService(Context.NOTIFICATION_SERVICE);

        final PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
                new Intent(this, MainActivity.class), 0);

        final Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

        final NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
        builder.setContentTitle(getString(R.string.app_name));
        builder.setSmallIcon(R.mipmap.icon);
        Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.mipmap.icon);
        builder.setLargeIcon(largeIcon);
        builder.setStyle(new NotificationCompat.BigTextStyle().bigText(msg));
        builder.setContentText(msg);
        builder.setWhen(System.currentTimeMillis());
        builder.setSound(uri);

        // タップで通知領域から削除する
        builder.setAutoCancel(true);

        builder.setContentIntent(contentIntent);
        notificationManager.notify(NOTIFICATION_ID, builder.build());
    }

◼︎dpiについて
mdpiの時のpx値になる。

ldpi 120dpi
mdpi 160dpi
hdpi 240dpi
xhdpi 320dpi
xxhdpi 480dpi
xxxhdpi 640dpi

なので、
10dpはmdpiでは10px、
ldpiでは 10 × 120 / 160 = 7.5px
となる。