[Android] 通知アイテムの背景画像を差し替える

| トラックバック(0) |

通知アイテムの背景画像を差し替えてみました。

単一画像だと飽きてしまうので、16 種類の画像をランダムで採用するようにしています。

新しい通知が来るたびに幸せになれます。 

※タップするとハイライトします(上図では4番目のアイテム)

 

ソースコード

  • android-4.0.3_r1\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBar.java
// ->
static int cNotificationRowBgResIds[] = {
    R.drawable.notification_row_bg_ai,
    R.drawable.notification_row_bg_amimami,
    R.drawable.notification_row_bg_azusa,
    R.drawable.notification_row_bg_chihaya,
    R.drawable.notification_row_bg_eri,
    R.drawable.notification_row_bg_haruka,
    R.drawable.notification_row_bg_hibiki,
    R.drawable.notification_row_bg_iori,
    R.drawable.notification_row_bg_kotori,
    R.drawable.notification_row_bg_makoto,
    R.drawable.notification_row_bg_miki,
    R.drawable.notification_row_bg_ritsuko,
    R.drawable.notification_row_bg_ryo,
    R.drawable.notification_row_bg_takane,
    R.drawable.notification_row_bg_yayoi,
    R.drawable.notification_row_bg_yukiho };
// <-
    void applyLegacyRowBackground(StatusBarNotification sbn, View content) {
        if (sbn.notification.contentView.getLayoutId() !=
                com.android.internal.R.layout.status_bar_latest_event_content) {
            int version = 0;
            try {
                ApplicationInfo info = mContext.getPackageManager().getApplicationInfo(sbn.pkg, 0);
                version = info.targetSdkVersion;
            } catch (NameNotFoundException ex) {
                Slog.e(TAG, "Failed looking up ApplicationInfo for " + sbn.pkg, ex);
            }
            if (version > 0 && version < Build.VERSION_CODES.GINGERBREAD) {
//                content.setBackgroundResource(R.drawable.notification_row_legacy_bg);
            } else {
//                content.setBackgroundResource(R.drawable.notification_row_bg);
            }
        }
// -> 別にここじゃなくてもいいけど。。。
int index = (int) (Math.random() * cNotificationRowBgResIds.length);
int resId = cNotificationRowBgResIds[index];
content.setBackgroundResource(resId);
// <-
    }

 

リソース

  • android-4.0.3_r1\frameworks\base\packages\SystemUI\res\drawable に以下のファイルを追加
    • notification_row_bg_ai.xml
    • notification_row_bg_amimami.xml
    • notification_row_bg_azusa.xml
    • notification_row_bg_chihaya.xml
    • notification_row_bg_eri.xml
    • notification_row_bg_haruka.xml
    • notification_row_bg_hibiki.xml
    • notification_row_bg_iori.xml
    • notification_row_bg_kotori.xml
    • notification_row_bg_makoto.xml
    • notification_row_bg_miki.xml
    • notification_row_bg_ritsuko.xml
    • notification_row_bg_ryo.xml
    • notification_row_bg_takane.xml
    • notification_row_bg_yayoi.xml
    • notification_row_bg_yukiho.xml

※notification_row_bg_haruka.xml のサンプルリソース例

<selector xmlns:android="http://schemas.android.com/apk/res/android"
        android:exitFadeDuration="@android:integer/config_mediumAnimTime">
    <item android:state_pressed="true"
            android:drawable="@drawable/notification_item_background_haruka_pressed" />
    <item android:state_pressed="false"
            android:drawable="@drawable/notification_item_background_haruka" />
</selector>
  • android-4.0.3_r1\frameworks\base\packages\SystemUI\res\drawable-hdpi に以下の画像を追加
    • notification_item_background_ai.png
    • notification_item_background_ai_pressed.png
    • notification_item_background_amimami.png
    • notification_item_background_amimami_pressed.png
    • notification_item_background_azusa.png
    • notification_item_background_azusa_pressed.png
    • notification_item_background_chihaya.png
    • notification_item_background_chihaya_pressed.png
    • notification_item_background_eri.png
    • notification_item_background_eri_pressed.png
    • notification_item_background_haruka.png
    • notification_item_background_haruka_pressed.png
    • notification_item_background_hibiki.png
    • notification_item_background_hibiki_pressed.png
    • notification_item_background_iori.png
    • notification_item_background_iori_pressed.png
    • notification_item_background_kotori.png
    • notification_item_background_kotori_pressed.png
    • notification_item_background_makoto.png
    • notification_item_background_makoto_pressed.png
    • notification_item_background_miki.png
    • notification_item_background_miki_pressed.png
    • notification_item_background_ritsuko.png
    • notification_item_background_ritsuko_pressed.png
    • notification_item_background_ryo.png
    • notification_item_background_ryo_pressed.png
    • notification_item_background_takane.png
    • notification_item_background_takane_pressed.png
    • notification_item_background_yayoi.png
    • notification_item_background_yayoi_pressed.png
    • notification_item_background_yukiho.png
    • notification_item_background_yukiho_pressed.png

※本サイトでの画像配布はありませんので、画像は各自で適当なものを準備してください(上記は、あくまでも参考イメージです)

トラックバック(0)

トラックバックURL: http://mt.adakoda.com/mt-tb.cgi/566

2016年8月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31