Carbide / Symbian C++ — изменить значок приложения
Вопрос
Я использую Carbide (только что обновленный до 2.0) для разработки приложения S60 3rd Edition.
Хотелось бы узнать самый простой способ смены значка (как значка приложения в меню устройства и значок в левом верхнем углу главного окна), потому что мне нужно как можно проще оформить свое приложение разными способами.
Все мои попытки разобраться с файлами .mif пока не увенчались успехом.У меня есть значок .svg размером 44x44, который я создал в Illustrator. Может ли кто-нибудь помочь мне в правильном направлении?
Спасибо!
Решение
Чтобы изменить значок приложения при запуске приложения (в строке состояния):
CEikStatusPane* sp=iEikonEnv->AppUiFactory()->StatusPane();
CAknContextPane* cp=(CAknContextPane *)sp->ControlL(TUid::Uid(EEikStatusPaneUidContext));
_LIT(KContextBitMapFile, "my_bitmap_file.mbm");
CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(KContextBitMapFile, EMbmBitmap);
CleanupStack::PushL(bitmap);
CFbsBitmap* bitmapmask = iEikonEnv->CreateBitmapL(KContextBitMapFile, EMbmBitmapMask);
CleanupStack::PushL(bitmapmask);
cp->SetPicture(bitmap, bitmapmask);
CleanupStack::Pop(); // bitmapmask
CleanupStack::Pop(); // bitmap
DrawNow();
Мне не известна какая-либо возможность программного изменения значка приложения в списке меню, кроме переустановки приложения с другим файлом MIF.
Другие советы
Если вы хотите изменить значок в файле SIS, а затем переустановить его на устройстве, возможно, вам придется перезагрузить устройство после установки — значок приложения находится в кеше Symbian и не обновляется.
Благодаря последней версии QMake и Qt SDK (4.6.2) вам не нужно самостоятельно создавать файлы .mif.Файл SVG подойдет.
Более подробные инструкции см.: Как установить значок и заголовок приложения Qt в Symbian S60.
Хотя в статье используется Qt Creator, если вы используете QMake, то это то же самое.