Променете иконата на системното приложение по подразбиране

Попаднах на приложение за стартиране на име Nova Launcher, което предоставяйки опция за промяна на външния вид и усещането на системните приложения към друг пакет с икони, по-долу е екранната снимка от nova launcher.

екранна снимка от нова програма за стартиране

Когато избера stock jellybean, иконата на системното приложение ще бъде заменена с пакет икони на jellbean.

Искам да внедря същата функционалност в собственото си приложение за стартиране, използвам Google, но не намерих нищо свързано, имам нужда от ръководство и предложение.

Опитах се да настроя Example-theme просто да променя името на пакета, но ми дава принудително затваряне на това com.mypackagename not found.

Основна дейност@

private static final String ACTION_APPLY_ICON_THEME = "com.mypackage.launcher.APPLY_ICON_THEME";
    private static final String NOVA_PACKAGE = "com.mypackage.launcher";
    private static final String EXTRA_ICON_THEME_PACKAGE = "com.mypackage.launcher.extra.ICON_THEME_PACKAGE";

//    private static final String ACTION_APPLY_ICON_THEME = "com.teslacoilsw.launcher.APPLY_ICON_THEME";
//    private static final String NOVA_PACKAGE = "com.teslacoilsw.launcher";
//    private static final String EXTRA_ICON_THEME_PACKAGE = "com.teslacoilsw.launcher.extra.ICON_THEME_PACKAGE";

Просто търся начин какво да управлявам или да кодирам в собствения си стартер, за да задам теми, същите като на нова стартер.

Връзките по-долу ми помагат да създам теми за стартер, но не намерих начин да задам/приложа към моя стартер.

Урок за тема за стартиране

Примерна тема

Вашето предложение е забележимо.


person RobinHood    schedule 07.09.2013    source източник
comment
не го разбирам Мисля, че докато внедрявате свое собствено приложение за начален екран, всяко показване на икона е под ваш контрол. Можете да покажете всяко изображение за всяка икона на приложение, нали?   -  person Robin    schedule 09.09.2013
comment
Ако сте запознати с nova launcher, тогава лесно ще го получите, но не намерих начин това, което трябва да кодирам в стартовия панел, за да приложа темата, както правят другите стартерни програми.   -  person RobinHood    schedule 09.09.2013
comment
Мисля, че потребителят Robin е прав. Опцията за избор на тема е точно това: опция. Ще запазите избраната от потребителя тема и ще заредите иконите на системата/приложението въз основа на нея. Вижте ApplicationsAdapter.java от проект android-launcher-plus (стартер с отворен код): Връзка. Иконата и нейният вид и усещане са под ваш контрол. Напишете Util метод, за да разберете кои икони трябва да се променят и да ги обработвате по съответния начин.   -  person Vikram    schedule 09.09.2013


Отговори (1)


Г-н Робин е прав.. Можете да го направите ръчно..

Поставете цялата си персонализирана икона в папка с възможност за рисуване с конкретно име като icon_appname.png..

icon_contacts.png, icon_camera.png, icon_settings.png, icon_phone.png, icon_email.png... и т.н.

или можете също да запазвате изображения като име на пакет също като icon_com_android_camera.png...и т.н.

Просто поставете условие във вашия GetView в Adapter Class.

        if(User selected default theme)
        {
        //use default icon from system
        }
        else
        {
            String appname = here is app name;
            String appPackageName = here is app package name;
            // You can use appname or appPackageName as per your drawable name.
            int intResource = getResources().getIdentifier("icon_" + appname.toLowerCase(), "drawable", getPackageName());
            if(intResNormal!=0)
                holder.txtTitle.setCompoundDrawablesWithIntrinsicBounds(null, getResources().getDrawable(intResource), null, null);
            else
                //use default icon when no resource found
        }

Забележка: Ако следвате името на пакета, не забравяйте да замените "_" с "."

person Niranj Patel    schedule 09.09.2013