[Вопросы] почему при входе в игру у меня изображение не помещается в экран
| смотря какой у тебя телефон если у тебя безрамочный экран то просто заходишь в настройки там находишь все твои приложения ищешь игру там нажимаешь разрешить полноэкранный режим (или что то подобное) |
Посмотрите какие приложения у вас совместимы с полноэкраным режимом 😉 ![]() |
Screenshot_2019-08-14-21-07-01-713_com.miui.home.png (640.92 KB, Downloads: 14)
2019-08-15 02:19:56 Upload
Screenshot_2019-08-14-21-07-34-921_com.android.settings.png (579.1 KB, Downloads: 14)
2019-08-15 02:19:56 Upload
Screenshot_2019-08-14-21-08-02-312_com.android.settings.png (526.05 KB, Downloads: 12)
2019-08-15 02:19:56 Upload
IMG_20190814_211043.jpg (563.54 KB, Downloads: 16)
2019-08-15 02:19:56 Upload
IMG_20190814_211502.jpg (580.32 KB, Downloads: 12)
2019-08-15 02:19:56 Upload
IMG_20190814_211643.jpg (592.77 KB, Downloads: 11)
2019-08-15 02:19:56 Upload
Screenshot_2019-08-14-21-17-07-073_com.android.settings.png (580.96 KB, Downloads: 12)
2019-08-15 02:19:56 Upload
Screenshot_2019-08-14-21-18-25-294_com.android.settings.png (1.98 MB, Downloads: 14)
2019-08-15 02:19:56 Upload
Screenshot_2019-08-14-21-18-11-726_com.android.settings.png (1.95 MB, Downloads: 15)
2019-08-15 02:19:56 Upload

Xiaomi Comm APP
Получайте новости о Mi продукции и MIUI
Рекомендации
* Рекомендуется загружать изображения для обложки с разрешением 720*312
Изменения необратимы после отправки
Cookies Preference Center
We use cookies on this website. To learn in detail about how we use cookies, please read our full Cookies Notice. To reject all non-essential cookies simply click «Save and Close» below. To accept or reject cookies by category please simply click on the tabs to the left. You can revisit and change your settings at any time. read more
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
Android: как заставить приложения видеть весь экран
Экраны наших мобильных телефонов не перестали расти, в то время как кадры все больше и больше спешат с каждым новым поколением. Цель, которую преследуют все производители, заключается в том, чтобы предложить максимально возможный экран. Просмотр приложения в полноэкранном режиме максимально используя мобильный телефон, но во многих случаях возникают проблемы, так что их можно увидеть без рамок или границ. Это где функция, которая позволяет вам заставить отображение приложений на весь экран вступает в игру .
Большинство приложений, установленных на наших мобильных телефонах, автоматически адаптируются для правильного отображения в полноэкранном режиме. Тем не менее, существует много сторонних разработок, которые либо из-за их характера отображения, либо из-за разработчик не сделал соответствующие корректировки, являются не отображается таким образом, что означает, что значительная часть экрана теряется.
Все приложения в полноэкранном режиме
Оказавшись внутри, мы увидим список приложений, которые наша система обнаружена как «не совместимая» в полноэкранном режиме. В этом случае нам придется активировать каждый селектор, чтобы вызвать «Полноэкранное отображение» и, таким образом, заполнить этот пробел. Имейте в виду, что принудительные приложения, не предназначенные для этого режима просмотра, могут сделать некоторые из них слегка искаженными.
С помощью приложения
Это приложение, которое не требует каких-либо корневых разрешений, добавляет различные варианты отображения на панели задач. Другими словами, когда вы запускаете приложение, вы можете сдвинуть панель вниз и изменить ее тип отображения в считанные секунды.
Почему изображение игры не помещается на экран монитора (невидно часть изображения, какое-то неправильное масштабирование)

В последнее время большинство ноутбуков идет с разрешением FullHD (1920 на 1080, и выше). Причем, такое высокое разрешение идет как на экранах в 13,3 дюйма, так и на 17+ дюймах. Разумеется, если бы в Windows 10 не было масштабирования — то изображение на небольших экранах было бы очень мелким, и работать было бы не комфортно.
Всё это, конечно, хорошо, но масштабирование работает некорректно со многими старыми приложениями (включая игры). И можно столкнуться с двумя проблемами:
В общем, в этой статье предложу парочку простых способов исправить ситуацию. И так.
Изображение просто не вписывается в экран (два фото на одном и том же экране). Игра Civilization IV (2004 г.)
Как исправить ситуацию
Вариант #1 — отключить масштабирование
Это самый простой и быстрый способ, однако он привносит определенные неудобства. Переключать постоянно масштабирование не очень удобно, к тому же многие элементы могут стать маленькими и для глаз это не очень хорошо (будут быстро уставать).
Для изменения масштабирования:
desk.cpl — открыть свойства экрана
Настройки дисплея (Windows 10) / Было
Вариант #2 — переопределить режим масштабирования для одного приложения
Этот вариант мне нравится больше, т.к. масштабирование будет изменяться только в одном отдельно взятом приложении, а в остальной работе — будет так, как вы задали в параметрах Windows. Правда, сразу отмечу, что работает данная фишка не со всеми программами.
Свойства (исполняемый файл игры)
После чего следует открыть вкладку «Совместимость» и:
Переопределить режим масштабирования (для приложения)
Дополнения по теме — приветствуются!
Настройка масштаба интерфейса на Android
Масштаб интерфейса на устройстве Андроид – это размер всех элементов меню. Благодаря возможности его настроек, можно легко отрегулировать все под максимально удобный вид. Изменять масштаб можно, начиная с версии ОС Android 7.0 Nougat. Но на устройствах некоторых производителей, имеющих свою фирменную оболочку, функция уменьшения или увеличения масштаба присутствует уже давно. Они внедрили её еще на более ранних версиях Андроид.
Из статьи вы узнаете
Зачем менять масштаб?
В первую очередь, его можно изменять для того, чтобы на экран телефона помещалось больше информации. Это особенно полезно, если вы часто проводите время в мессенджерах, социальных сетях и так далее.
Также если пользователь постоянно не попадает в нужное место на экране, то для комфортной работы необходимо отрегулировать интерфейс чтобы кнопки управления были больше. Соответственно, по ним уже будет легче попасть.
В качестве примера посмотрите на эти два скриншота. На одном масштаб маленький, а на другом большой:
На что влияет масштаб?
Как видим из вышеприведенного скриншота, в первую очередь он влияет на количество информации на экране в один кадр. То есть, чем больше масштаб, тем больше помещается на экран полезной информации от приложений. Соответственно, становится удобнее пользоваться смартфоном из-за того, что не нужно всегда пролистывать экран для получения скрытой информации. С большим масштабом на экране больше текста, больше картинок, ведь сам интерфейс занимает меньше места.
На примере скриншота отлично видно, что с большим масштабом поместилось сразу четыре линии настроек, в то время как на маленьком масштабе всего две. Таким образом, мы увеличиваем количество информации на экране и делаем работу с гаджетом более удобной, быстрой и комфортной.
Также стоит отметить, что такие настройки задевают размеры только частиц интерфейса, при этом, не трогая размер шрифта, вставленных картинок, видео, фото и так далее.
При изменении размера интерфейса меняются только те параметры, что заданы как программа, а не как графический элемент. То есть если картинка будет одного размера, то она не станет меньше либо больше с изменением масштаба, так как картинка не относится к интерфейсу, она уже считается как контент. Следственно, размер интерфейса никак не повлияет на отображение в играх, при просмотре фильмов в плеере, в галерее и так далее. Данный метод делает размер интерфейса только для полигонов системы, которые создаются в виде кода, а не графики.
Масштаб будет применен к следующим частям системы:
А вот эти элементы не будут изменяться:
Первый способ
В данном случае доступно лишь 4 режима:
Увы, в этом методе нельзя более широко настроить масштаб интерфейса, все ограничивается лишь четырьмя пучками. Зато все очень быстро и удобно. Также при изменении масштаба есть картинка, показывающая, как будет выглядеть интерфейс в разных приложениях.
Второй способ
Более сложный, но и более гибкий. Во втором способе можно изменять размер насколько угодно, хоть до мельчайшего интерфейса, который не будет видно, хоть до очень большого, где одна кнопка будет на весь экран. Конечно, так сильно выкручивать интерфейс не стоит, но сам факт такой возможности говорит нам о полной свободе выбора через второй способ.
Для применения нужно зайти в режим «Для разработчиков». Делаем следующие шаги:

4 Replies to “ Настройка масштаба интерфейса на Android ”
я решил попробовать это на устройстве BQ SPRING я использовал второй способ и изменил ширину с 320 на 3200 и у меня произошёл сбой в системе то есть появилось окно: сбой в приложении «интерфейс системы» (и 1 вариант) закрыть приложение, я нажимаю появляется чёрный экран. Я пробовал включить безопасный режим, просто перезагрузить, подключил к ПК, посмотрел, единственная информация о телефоне — это заряд батареи издатель модель и серийный номер ВСЁ. ПОЖАЛУЙСТА СКАЖИТЕ КАК ИСПРАВИТЬ.
У меня тоже такая проблема как ты решил? Скажи пожалуйста
я решил попробовать это на устройстве doogee x60l я использовал второй способ и изменил ширину с 320 на 648 и у меня произошёл сбой в системе то есть появилось окно: сбой в приложении «интерфейс системы» (и 1 вариант) закрыть приложение, я нажимаю появляется чёрный экран. Я пробовал включить безопасный режим, просто перезагрузить, подключил к ПК, посмотрел, единственная информация о телефоне — это заряд батареи издатель модель и серийный номер ВСЁ. ПОЖАЛУЙСТА СКАЖИТЕ КАК ИСПРАВИТЬ.
У меня тоже такая проблема что ты сделал скажи пожалуйста?
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Что делать если игра не влазит в экран телефона
Теперь давайте задумаемся, что представляет собой оптимизация игры под экраны HVGA/QVGA?
Ее можно разделить на несколько этапов.
Основные:
1. Смена разрешения рендеринга на HVGA/QVGA.
2. Корректировка координатной сетки сенсорного экрана.
Второстепенные:
3. Отключение проверки кеша(необходимо для того чтоб можно было переконвертировать вступительный ролик под меньшее разрешение).
4. Назначение аппаратной кнопки, на какое-либо действие(необходимо для телефонов без мультитача).
Прежде чем приступить к какому-либо этапу оптимизации, нам необходимо добраться до исходного кода программы, оригинальный исходный код мы разумеется не получим, но можем получить JAVA-байт код, чего вполне для нашей задачи будет достаточно. Для этого мы будем использовать «Apk Manager».
Установка и работа с «Apk Manager».
Далее по-тексту я буду упускать описание процесса распаковки/запаковки апк-файлов.
Также прежде чем начинать, рекомендую сначала просмотреть список команд JAVA-байт кода.
Теперь можно преступить непосредственно к оптимизации, для примера я буду использовать игру «Modern Combat: Sandstorm».
1. Смена разрешения рендеринга на HVGA/QVGA.
.method public onDrawFrame(Ljavax/microedition/khronos/opengles/GL10;)V
.locals 6
.parameter «gl»
.prologue
.line 174
const-wide/16 v0, 0x0
.line 177
.local v0, time:J
invoke-static <>, Ljava/lang/System;->currentTimeMillis()J
.line 179
invoke-static <>, Lcom/gameloft/android/GAND/GloftMCHP/GLMediaPlayer;->update()V
.line 180
invoke-static <>, Lcom/gameloft/android/GAND/GloftMCHP/SandstormRenderer;->nativeRender()V
.line 186
const-wide/16 v2, 0x32
sub-long/2addr v4, v0
.line 188
const-wide/16 v2, 0x0
.line 193
:cond_0
:goto_0
return-void
.line 190
:catch_0
move-exception v2
goto :goto_0
.end method
.method public onDrawFrame(Ljavax/microedition/khronos/opengles/GL10;)V
.locals 9
.parameter «gl»
.prologue
const/16 v8, 0x1E0
.line 174
const-wide/16 v0, 0x0
.line 177
.local v0, time:J
invoke-static <>, Ljava/lang/System;->currentTimeMillis()J
.line 179
invoke-static <>, Lcom/gameloft/android/GAND/GloftMCHP/GLMediaPlayer;->update()V
.line 180
invoke-static <>, Lcom/gameloft/android/GAND/GloftMCHP/SandstormRenderer;->nativeRender()V
.line 186
const-wide/16 v2, 0x32
sub-long/2addr v4, v0
.line 188
const-wide/16 v2, 0x0
.line 193
:cond_0
:goto_0
return-void
.line 190
:catch_0
move-exception v2
goto :goto_0
.end method
Также обратим внимание на функцию «onSurfaceCreated».
.method public onSurfaceCreated(Ljavax/microedition/khronos/opengles/GL10;Ljavax/microedition/khronos/egl/EGLConfig;)V
.locals 7
.parameter «gl»
.parameter «config»
.line 138
const/4 v0, 0x2
const-string v1, «SandstormRenderer»
const-string v2, «onSurfaceCreated»
.line 141
invoke-direct
.line 142
invoke-static <>, Lcom/gameloft/android/GAND/GloftMCHP/GLResLoader;->init()V
.line 143
invoke-static <>, Lcom/gameloft/android/GAND/GloftMCHP/GLMediaPlayer;->init()V
.line 144
invoke-static <>, Lcom/gameloft/android/GAND/GloftMCHP/Sandstorm;->nativeInit()V
.line 146
:goto_0
sget v0, Lcom/gameloft/android/GAND/GloftMCHP/SandstormGLSurfaceView;->mDevice_W:I
sget v0, Lcom/gameloft/android/GAND/GloftMCHP/SandstormGLSurfaceView;->mDevice_H:I
.line 149
:cond_0
const-wide/16 v0, 0x32
:catch_0
move-exception v6
.local v6, ex:Ljava/lang/Exception;
invoke-virtual
.line 154
.end local v6 #ex:Ljava/lang/Exception;
:cond_1
sget v1, Lcom/gameloft/android/GAND/GloftMCHP/Sandstorm;->m_bEnableKeyboard:I
sget v3, Lcom/gameloft/android/GAND/GloftMCHP/SandstormGLSurfaceView;->mDevice_W:I
sget v4, Lcom/gameloft/android/GAND/GloftMCHP/SandstormGLSurfaceView;->mDevice_H:I
sget v5, Lcom/gameloft/android/GAND/GloftMCHP/Sandstorm;->mCurrentLang:I
.line 155
return-void
.end method
sget v3, Lcom/gameloft/android/GAND/GloftMCHP/SandstormGLSurfaceView;->mDevice_W:I
sget v4, Lcom/gameloft/android/GAND/GloftMCHP/SandstormGLSurfaceView;->mDevice_H:I
Основная идея следующего шага, удалить с библиотеке все вызовы функции «glViewPort».
Для анализа библиотеки нам понадобится «Ida Pro». Для удобства копируем «libsandstorm.so» в любую папку, запускаем «Ida Pro» и жмем на кнопку «New»
Далее выбераем «Various files», «Unknown file» и жмем «Ок».
В окне открытия файла указываем путь к библиотеке «libsandstorm.so» и жмем «Открыть».
В следующем окне изменяем «Processor type» на «ARM processorARM710a», далее жмем «Set» и «Ок».
Если после этого, появятся еще окна с чем либо, жмем «Ок». Теперь необходимо дождаться окончания дизассемблирования. Процесс этот достаточно долгий, по-этому можно пойти покурить или попить кофе 🙂
О том что дизассемблирования закончено, укажет сообщение «The initial autoanalysis has been finished.» в нижнем окне «Output window».
| |
Для большего удобства, в нашем случае, кликаем правой кнопкой мышки по голубой области, и в контекстном меню выбираем «Text view». Перемещаемся в самое начало ассемблерного кода, для осуществление поиска «glViewPort».
| |
Жмем комбинацию клавиш «Alt+T» и в появившемся диалоге для поиска вводим «glViewPort» и жмем «Ок».
Нас интересуют вызовы функций «BLX glViewport», «BL glViewport», «B glViewport», «BX glViewport» и т. д. Любые другие упоминания о «glViewport» мы игнорируем, жмакаем «Ctrl+T» и продолжаем поиск.
Найдя необходимое место, переключаемся на «Hex View-A».
| |
Удостоверяемся, что вызов функции занимает 4 байта и это «CE F7 D4 E8»(в вашем случае эти цифры могут быть другими), это необходимо для того чтоб видеть что нужно исправлять и не затереть случайно ничего лишнего.
| |
Для того чтоб переместится по нужному нам адресу, жмем «Ctrl+G», в появившееся окно вводит «0x001F994A» и жмем «Ок».
Переместившись мы видим, что попали туда, куда нужно, весь шестнадцатеричный код сходится с тем что мы видели в «Ida Pro» на вкладке «Hex View-A».
| |
Переключаемся в «Ida Pro» и продолжаем поиск следующих вызовов «glViewPort», их может быть несколько десятков. С ними поступаем аналогично.
Когда все вызовы функции выпилили, сохраняемся. Копируем на место исправленный «libsandstorm.so». Запаковываем апк-файл и устанавливаем на телефон для проверки. Если все сделано правильно, то вся графика смаштабируется до необходимого разрешения.
2. Корректировка координатной сетки сенсорного экрана
Даже когда мы оптимизировали графику под экран HVGA/QVGA и все кнопочки на экране отображаются в нужных местах, на координатной сетки сенсорного экрана они располагаются на старых местах, за пределами экрана.
Выглядит это так.
| .method public onTouchEvent(Landroid/view/MotionEvent;)Z .prologue .line 379 .line 380 .line 382 .line 383 shr-int/lit8 v5, v6, 0x8 .line 388 .line 390 .line 394 .line 397 .line 400 .line 402 .local v2, i:I .line 403 .line 405 .line 402 .line 409 .line 412 .line 415 .line 416 .restart local v2 #i:I .line 418 .line 421 .line 416 .line 427 .method public onTouchEvent(Landroid/view/MotionEvent;)Z .prologue .line 379 .line 380 .line 382 .line 383 shr-int/lit8 v5, v6, 0x8 .line 388 .line 390 mul-int/lit8 v6, v6, 0xa div-int/lit8 v6, v6, 0x6 mul-int/lit8 v7, v7, 0x3 div-int/lit8 v7, v7, 0x2 .line 394 .line 397 mul-int/lit8 v6, v6, 0xa div-int/lit8 v6, v6, 0x6 mul-int/lit8 v7, v7, 0x3 div-int/lit8 v7, v7, 0x2 .line 400 .line 402 .local v2, i:I .line 403 .line 405 mul-int/lit8 v6, v6, 0xa div-int/lit8 v6, v6, 0x6 mul-int/lit8 v7, v7, 0x3 div-int/lit8 v7, v7, 0x2 .line 402 .line 409 .line 412 mul-int/lit8 v6, v6, 0xa div-int/lit8 v6, v6, 0x6 mul-int/lit8 v7, v7, 0x3 div-int/lit8 v7, v7, 0x2 .line 415 .line 416 .restart local v2 #i:I .line 418 .line 421 mul-int/lit8 v6, v6, 0xa div-int/lit8 v6, v6, 0x6 mul-int/lit8 v7, v7, 0x3 div-int/lit8 v7, v7, 0x2 .line 416 .line 427 mul-int/lit8 v6, v6, 0xa div-int/lit8 v6, v6, 0x6 mul-int/lit8 v7, v7, 0x3 div-int/lit8 v7, v7, 0x2 .method private isRequiredFile(Ljava/lang/String;J)Z .prologue .line 410 invoke-direct sget-object v3, Lcom/gameloft/android/GAND/GloftMCHP/GameInstaller;->DATA_PATH:Ljava/lang/String; .line 411 invoke-direct .line 412 .line 415 :cond_0 :cond_1 :cond_2 goto :goto_0 :cond_1 .method private isRequiredFile(Ljava/lang/String;J)Z .prologue .line 410 invoke-direct sget-object v3, Lcom/gameloft/android/GAND/GloftMCHP/GameInstaller;->DATA_PATH:Ljava/lang/String; .line 411 invoke-direct .line 412 .line 415 :cond_2 goto :goto_0 Таким образом мы, указываем игре, чтоб она не зависимо от типа ускорителя, использовался кеш для «Snapdragon». Если игра вообще не запускается sget-object v0, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String; sget-object v1, Landroid/os/Build;->MODEL:Ljava/lang/String; const-string v0, «HTC» const-string v1, «HTC Desire» Анализировать JAVA-байт-код, в файлах «*.smali», занятие достаточно сложное и мало приятное. Но есть выход, мы можем декомпилировать apk-файл и получить исходники JAVA. Хоть эти исходники и не годятся для компиляции, но изучение программы облегчают в разы. Для этого нам понадобятся 2 программы dex2jar и jd-gui, их необходимо разархивировать в произвольные папки. Далее, с помощью архиватора, с подопытного apk-файла необходимо извлечь и скопировать в папку с «dex2jar» файл «classes.dex». С помощью командной строки выполняем команду «dex2jar.bat classes.dex», в результате последней в папке «dex2jar» получаем файл «classes.dex.dex2jar.jar». Теперь запускаем программу «jd-gui» и в ней открываем, полученный ранее, файл «classes.dex.dex2jar.jar».
|




































