2010-05-30 5 views
7

Я не могу заставить свой ImageView отображать исходное изображение в исходном размере. ImageView выглядит следующим образом:Android: ImageView масштабирует исходное изображение

<ImageView 
android:id="@+id/Logo" 
android:src="@drawable/logo" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
> 
</ImageView> 

исходного изображения составляет 140 пикселей в ширину, но на экране Nexus One, который составляет 480 пикселей в ширину он использует половину ширины. Использование абсолютных значений в px или dp для ширины и высоты ничего не меняет. Изображение также выглядит очень сглаженным от масштабирования. Почему это происходит и как я могу это предотвратить?

ответ

7

Скорее всего, Android расширяет изображение, потому что вы не сказали, что поддерживаете большие экраны. Добавьте suitable <supports-screens> element к вашему манифесту и посмотрите, поможет ли это.

+0

Я просто попробовал ваше предложение, и это определенно имеет какое-то отношение к этому. Большое спасибо! Теперь изображение имеет «правильный» размер, если я использую размеры изображения как абсолютные значения пикселей для layout_width и layout_height. Если я использую wrap_content, изображение по-прежнему будет таким же большим, как и раньше, что, как кажется, также имеет тот же размер, что и при использовании размеров изображения с «dp» в качестве измерения. Я думаю, это как раз то, как работает wrap_content. В этом случае было бы разумно, что изображение будет отображаться слишком большим на устройстве с экраном с высокой плотностью, таким как Nexus. –

+0

Что еще странно, если я использую wrap_content для layout_width и layout_height, но использую абсолютные значения пикселей для maxWidth и maxHeight, которые не оказывают никакого эффекта. Поскольку использование пиксельных измерений не рекомендуется, так или иначе, я задаюсь вопросом, существуют ли какие-либо другие способы предотвращения перескакивания изображения? –

+1

Возможно, вы все равно хотите две версии вашего изображения: одну для экранов средней плотности и одну для экранов с высокой плотностью. Попробуйте поместить изображение в 'res/drawable-hdpi /' и посмотреть, поможет ли это. – CommonsWare