Я создал фоновое изображение, которое точно соответствует дисплею устройства без строки состояния и панели действий. Это означает, что вся высота моего устройства составляет 1280 пикселей. Без панели состояния и панели действий 1038 пикселей. Мое фоновое изображение ровно 1038 пикселей. Когда я установить изображение в качестве фона моего макета:getWindow(). SetBackgroundDrawable stretches background
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
view.setBackground(Helper.loadDrawableFromFile(this.getResources(), Helper.getBackgroundLoginImagePath()));
....
}
Он прекрасно вписывается в экран, как я хочу, чтобы это. проблема в том, что у меня есть вид прокрутки, и когда я хочу напечатать что-то в своих редакторах, клавиатура всплывает, и мое фоновое изображение становится доступным.
Так я изменил код, чтобы установить фоновое изображение в окно в моей деятельности OnCreate:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_login);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
this.getWindow().setBackground(Helper.loadDrawableFromFile(this.getResources(), Helper.getBackgroundLoginImagePath()));
...
}
Но почему-то фоновое изображение теперь получает растягивается так, что высота больше, чем оригинал, и я невозможно увидеть весь образ. (около 60 пикселей в высоту).
Что там происходит? Почему «setBackgroundDrawable» растягивает мой образ?
EDIT
Когда я сделать следующее в диалоговом фрагмента, который, по моему мнению, это точно так же, как это делать в деятельности, работает отлично:
public Dialog onCreateDialog(Bundle savedInstanceState) {
...
dialog.getWindow().setBackgroundDrawable(Helper.loadDrawableFromFile(this.getResources(), Helper.getBackgroundLoginImagePath()));
...
}
так почему не правда ли работающих на деятельность?
Я никогда не использовал 'setBackgroundDrawable', а фоновое изображение уже отлично масштабируется. Как я упоминал в своем открытии, он идеально подходит, когда я добавляю его в качестве фона для своего макета, но растягивается, когда я устанавливаю его как фоновое изображение окна. – Mulgard
@Mulgard. Я полагаю, что проблема может заключаться в том, что изображение пытается покрыть все окно. И поэтому растягивается. Это может быть тип масштабирования, который используется этим методом. –