Я понимаю, что на устройстве hdpi с экраном "нормального" размера что следует использовать графику 72 x 72 пикселя, а в противном случае они должны следовать Руководству по дизайну значков (чего, что интересно, не делают некоторые графические элементы платформы). Однако когда я пытаюсь сделать это, создав свою собственную новую графику или скопировав графический файл из Android SDK, изображение в меню слишком велико и заставляет текстовую метку, то есть заголовок, быть ниже это не появиться. Если я "принудительно" использую графику 48 x 48 пикселей, то размер будет выглядеть хорошо, а текстовая метка сможет появиться, но это не кажется правильным решением, поскольку качество графического отображения ухудшается, а в документации четко указано, что следует использовать графику 72 x 72.
Я понимаю, что для обеспечения правильного масштабирования следует использовать графику с 9 патчами, но ни один из графических значков меню в папках с возможностью переноса платформы не выглядит на самом деле 9 -patch, поскольку у них нет маркеров с 9 патчами. Для этих снимков экрана Я добавил 9-патч-маркеры к копии графики Android SDK 10 72 x 72 hdpi ic_menu_share.png. (Инструмент draw9patch.bat неожиданно изменил цвета изображения.)
На следующих четырех снимках экрана я показываю девять отображаемых значков меню, работающих на моем G2 и работающих на эмуляторе с качествами G2: Android 2.2 API 8 WVGA800 240 точек на дюйм. (Оба этих устройства имеют экраны hdpi «нормального» размера.) Поскольку графика значков меню отображает только шесть одновременно, для каждого устройства есть два снимка экрана: v1 и v2. После снимков экрана показаны компоненты кода, использованные для создания этого приложения, а также ссылка на полный проект со всеми использованными мной графическими файлами.
Emulator_2.2_API8_WVGA800-240_v1:
(Примечание: на приведенном выше снимке экрана с эмулятор, значок с надписью «Платформа G2» вместо этого, вероятно, следует обозначить «Запуск платформы», поскольку отображаемая графика относится к текущей платформе Android, а не к платформе G2. Мне было просто лень исправить это.)
Emulator_2.2_API8_WVGA800-240_v2:
G2_v1:
G2_v2:
(Обратите внимание, что я тщательно следовал Руководству по дизайну значков при создании и копирование этих изображений.)
AndroidManifest.xml :
MenuIconConfusion.java:
public class MenuIconConfusion extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_options_menu, menu);
return true;
}
}
main_options_menu.xml v1:
main_options_menu.xml v2:
Некоторые пояснения относительно снимков экрана и кода:
Как и в этой демонстрации, я понимаю, что мы не должны использовать графику из android: drawable по причинам, описанным в рекомендациях по дизайну значков меню .
Для некоторых из значки Я отображал их дважды - по одному разу с заголовком и по одному разу без заголовка - чтобы увидеть, влияет ли наличие заголовка на то, какой рисунок был выбран, и масштабируется ли выбранный рисунок.
Значок с надписью «Platform 10 48 Copy» представляет собой изображение размером 48 x 48 пикселей, скопированное из папки drawable-mdpi платформы Android SDK 10.
Два более светлых значка взяты из девяти патчей. Обратите внимание, что они не демонстрируют характеристик масштабирования.
Значок «72» был добавлен, чтобы показать, что ресурсы drawable-hdpi действительно автоматически выбираются работающей платформой, как и ожидалось. Если бы вместо этого использовались ресурсы drawable-hdmi, то отображаемое число было бы «48».
ВОЗМОЖНЫЕ ВОПРОСЫ:
Вкратце, я не ожидал больших результатов, отображаемых на этих снимках экрана. Хотя я ожидал, что будет использоваться графика drawable-hdpi 72 x 72, я также ожидал, что они будут отображать достаточно места для связанных заголовков. Итак ...
Я мог бы спросить: «Как мне масштабировать графику значка меню, чтобы оставить место для отображения связанного заголовка?»
Я мог бы спросить: «Графика какого размера у нас действительно предполагается использовать для значков меню, не говоря уже о официальной документации ? »
Я могу спросить:« Что, черт возьми, здесь происходит? понимаете? "
Файлы проекта Android с использованной мной графикой можно загрузить с https://sites.google.com/site/androidguiexamples/home/downloads/MenuIconConfusion.zip