2012-04-10 3 views
0

Хотя я знаю, что разрешение изображений и поддержка их на андроиде - довольно распространенный вопрос, связанный с Android. Я не могу найти никаких вопросов или сообщений в режиме онлайн, которые касаются того, что мне хотелось бы делать.Android - Наложение изображений для разных разрешений

У меня есть карта, которую я установил в качестве фона устройства Android. Затем я накладываю осязаемые точки и изображения, где существует определенный город. Моя проблема в том, как я должен правильно заниматься позиционированием городов на разных устройствах?

У меня разные изображения для разных точек на дюйм, если кто-то должен был спросить. Однако это правильный способ привязать положение x и y в этом случае, используя процент, основанный на масштабированном размере фона. Это решение, которое я все время возвращаю, но я еще не разработал способ получить масштабный размер фонового изображения.

Любая обратная связь будет оценена по достоинству. Райан

ответ

1

Это действительно трудно в Android, чтобы попытаться слой изображения на определенном месте в фоновом режиме, используя некоторую комбинацию ДОИ/весов , Одна из проблем заключается в том, как работает фоновая шкала? Вы используете предложенные 9-патч-изображения или просто разрешаете андроид или уменьшаете изображение? Даже после этого значение «dpi» телефонов не является точным, ОС просто использует предопределенный множитель (например, 1.5x для hdpi), чтобы быстро оценить размер изображения. Для получения «истинных» dpi вам потребуется что-то вроде:

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 

float xDpi = dm.xdpi; 
float yDpi = dm.ydpi; 

и используйте эти значения в своих расчетах. В конце концов, лучше всего просто использовать истинные значения экрана и использовать проценты, как вы сказали. Я считаю, что большинство приложений OpenGL делают это (кто-то поправьте меня, если я ошибаюсь), и такие приложения, которые находятся на грани использования графического движка, должны, вероятно, вести себя аналогичным образом.

+0

Спасибо, хотя мне не очень понравилась идея, это полезно знать, что это направление, в котором я должен был идти. Я позволил фону масштабироваться, чтобы соответствовать экрану. Я только что вычислил коэффициент, в котором он был масштабирован, и используется для определения точек для наложения дополнительных изображений. Все идет нормально! Спасибо, просто хорошо знать, по крайней мере, я шел в правильном направлении. – Ryan

0

веса макета Try, вот хорошее объяснение:

http://www.chess-ix.com/2012/01/17/the-use-of-layout_weight-with-android-layouts/

+0

Хотя это теоретически может ответить на вопрос, [было бы предпочтительно] (http://meta.stackexchange.com/q/8259) включить сюда основные части ответа и предоставить ссылку для справки. –

+0

Спасибо за ответ, однако я не вижу, как это будет связано. Вместо использования нескольких видов на экране я использую один вид, который представляет карту мира. Затем я накладываю небольшие рисунки на эту карту. В настоящее время, как упоминалось ранее, я использую масштабный размер экрана, который, похоже, работает, но кажется чрезмерным. – Ryan