2016-03-05 4 views
1

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

Я думаю, что это возможно, я видел контакт +, чтобы сделать это в своем приложении. Но я не знаю, как они это делают. Может ли кто-нибудь помочь мне, пожалуйста?

ПРИМЕЧАНИЕ: Я использовал и гравитацию, но это не помогает. Изображение все еще подходит для XY.not для обрезки, чтобы сохранить соотношение сторон и заполнять окно.

+0

http://stackoverflow.com/questions/6782294/android-crop-background –

+0

Вы уверены, что вам нужно использовать фоновое изображение? Можете ли вы просто использовать ImageView с scaleType = centerCrop? –

+0

нет, ты меня не понял. Да, я могу использовать framelayout, чтобы скрыть весь экран и использовать его в качестве фона. но это не меняет фон заголовка/панели действий. (Я использую голографическую тему). Так что мне нужно фоновое изображение. – dhir

ответ

0

Если фоновое изображение вашего приложения задано либо android:background="..." в вашем расположении xml, или программным путем, позвонив по номеру setBackgroundResource()? Если это так, то устанавливается фоновый ресурс View.

Фон View «ы всегда простирается, чтобы заполнить всю ширину и высоту View , теряя соотношение сторон, когда размеры макета изменить , например, когда устройство ориентация двигается или , когда приложение запускается в устройствах с другим экраном пропорции. Нет способа настроить этот в противном случае.

Обходные:

  • Преобразование фона в Nine-Patch файл, чтобы в растяжка применяется в отдельных областях только изображения. Это может или не может хорошо соответствовать дизайну вашего приложения.
  • Сделайте свое приложение обнаруженным изменением в вашем макете. Когда это произойдет, создайте новое фоновое изображение на лету, сохраняя пропорции исходного изображения, и установите фон View на новое изображение. Я написал описание о том, как keep aspect ratio of View background image с использованием этой техники; надеюсь, это может послужить отправной точкой.
Смежные вопросы