9 Patch являются вашими друзьями.Читайте о них здесь:
http://developer.android.com/guide/topics/resources/drawable-resource.html#NinePatch
и здесь:
http://developer.android.com/guide/developing/tools/draw9patch.html
Это ваш лучший выбор для любого вида графики, котораябудет хорошо растягиваться (т. е. не градиенты, а, возможно, на некоторых экранах они будут слегка пикселизированы). Сила этих типов изображений заключается в том, что вы можете указать системе, какие пиксели повторять, если ей нужно растянуть графику.Это означает, что растяжение можно выполнять без потери качества изображения (опять же, в зависимости от вашего изображения и того, как вы решите сделать девять патчей. Кнопка «показать плохие патчи» в программе draw9patch покажет вам потенциальные проблемы. Совет: сохраняйте повторяемость).пикселей вниз до 1 слева и 1 сверху, и у вас не будет проблем с плохими исправлениями) Любая графика, которая может быть сделана в 9 исправлений, будет нуждаться только в 1 размере, поскольку система может эффективно сделать это любым необходимым размером.
Вы должны создавать ресурсы для каждого размера экрана И плотности пикселей?
Вы можете, если хотите.Это гарантирует, что приложение будет отлично смотреться на всех устройствах.Я понимаю, что это возможно не для всех проектов.В общем, если вы сделаете отдельные ресурсы для разных плотностей, вы получите что-то, что выглядит приемлемым на большинстве устройств.Все устройства классифицируются как ldpi, mdpi или hdpi (теперь может быть и «сверхвысокий» уровень, я не уверен, что у меня в голове) Так что если вы предоставите графику для этих 3-х плотностей, то система будетзнать, где находится устройство и будет тянуть правильную графику.
возможно ли предоставить графику большого размера и просто уменьшить ее?
Да, системауменьшит вашу графику, если потребуется.Но учтите, что у этого подхода есть последствия.Во-первых, каждый раз, когда система вынуждена увеличивать или уменьшать графическое изображение, она использует процессор и память для этого.Это может не быть проблемой, если у вас относительно мало масштабируемых вещей, но если у вас их много, это может привести к заметному времени задержки на телефонах с низким энергопотреблением.Во-вторых, насколько мне известно, вся графика в Android является растровой, что означает, что если вы позволите системе масштабировать что-либо вверх или вниз, качество изображения несколько снизится.Опять же, в зависимости от конкретных изображений, это может быть более или менее заметно на самом устройстве во время выполнения.
Мой лучший совет - снабдить их ресурсами нескольких разных размеров и запустить приложение на таком количестве разных устройств, как вы.Можно.Как только вы увидите, как выглядят ваши различные ресурсы на устройствах разных размеров, вы гораздо лучше почувствуете, какие из них нужно предоставить, чтобы интерфейс выглядел максимально согласованно при самых больших размерах экранов и плотностях.