Cambie el tamaño de la pantalla para que se muestre solo en la parte de trabajo de la pantalla táctil semifuncional

Tengo un teléfono android oneplus. La pantalla táctil recientemente comenzó a funcionar mal, por lo que el centímetro inferior de la pantalla no funciona, pero el resto de la pantalla funciona perfectamente. Desafortunadamente, el centímetro inferior contiene muchas funciones importantes. ¿Hay alguna manera de cambiar el tamaño de mi pantalla o resolución para que excluya el centímetro inferior de mi pantalla?

Dado que es el centímetro inferior, probablemente podría configurarlo para usar botones de navegación tanto capacitivos como en pantalla. De esa manera, la barra de navegación llenará la parte inutilizable y aún podrá usar los botones capacitivos para navegar.

Respuestas (1)

Notas:

  • Mi solución se prueba en Stock Android 4.4.2 y Stock CyanogenOS 12 (5.0) de OnePlus One, y debería funcionar para Android 4.3 y superior (según esta respuesta ).
  • He mencionado donde se requiere acceso de root.
  • Esta respuesta se ha tomado de mi respuesta sobre una pregunta un poco diferente aquí .

He utilizado el siguiente comentario como base para trabajar:

El 20% inferior de mi Nexus 4 no funciona. Yo uso: wm overscan 0,0,0,210para que Android WM no dibuje nada en esa área para poder operar todas las áreas dibujadas completamente de nuevo... – Thrustmaster

Instrucciones:

  1. Habilite la depuración de USB en su teléfono.
  2. Instale las herramientas ADB en su PC, conecte su dispositivo y asegúrese de que el dispositivo se detecte en adb devices.
  3. Necesitamos saber la resolución y la densidad de visualización del dispositivo. En el terminal/cmd ingrese adb shell dumpsys display | grep mBaseDisplayInfopara mostrar información relacionada con la pantalla. La salida podría verse como:

    mBaseDisplayInfo=DisplayInfo{"Built-in Screen", app 480 x 854, real 480 x 854, largest app 480 x 854, smallest app 480 x 854, 64.29 fps, rotation 0, density 240, 240.0 x 240.0 dpi, layerStack 0, type BUILT_IN, address null, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS}
    

    La información relevante en mi caso es:

    • real 1080x1920
    • densidad 480
    1. Los comandos más útiles que se pueden utilizar son:

      • wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]
      • wm density [reset|DENSITY]

      Mi pantalla de inicio predeterminada sin ajustes se veía así:

    2. Para reducir la salida de la pantalla en la parte inferior, ejecute el comando:

      adb shell wm overscan 0,0,0,100
      

      Tenga en cuenta que utilicé una reducción adicional de upto 0,0,0,300y el resultado fue así:

      Ajuste el valor a sus necesidades deseadas.

    3. Es posible que deba corregir la densidad, ya que la pantalla podría tener un aspecto extraño . La densidad de visualización predeterminada de mi dispositivo es de 480 ppp, así que la ajusté de esta manera:

      adb shell wm density 440
      

      y la pantalla resultante era así . Una aplicación con resolución modificada.

    4. Tenga en cuenta que puede usar adb shell wm density resety adb shell wm overscan resetpara volver a la densidad y resolución predeterminadas, respectivamente.
    5. Ahora que se ha solucionado la "zona de toque muerto", es hora de usar teclas virtuales/soft (solo si las necesita).

      1. Izzy ya lo tiene cubierto en esta respuesta . De lo contrario, puede usar Gravitybox LP (para usuarios de Lollipop) o Gravitybox KK (para usuarios de Kitkat). Es un módulo Xposed y requiere acceso de root y Xposed Framework instalado.

        Instale, active e inicie Gravitybox → Ajustes de la barra de navegaciónHabilitar la barra de navegación → reinicie, y las teclas programables, también conocidas como barra de navegación, se encontrarán habilitadas.

      2. Las ROM personalizadas como Cyanogenmod y algunas ROM estándar tienen la opción de habilitar teclas programables (botones) en Configuración . Puede usar esa opción ya que no requiere ningún acceso de root.

      3. Después de algunos ajustes adicionales, la pantalla final de mi Android 5.0 se veía así:

        IMG: Después de algunos ajustes adicionales, la pantalla final de mi Android 5.0 se veía como

¡Estamos listos para irnos!

¡Ojalá hubiera sabido esto cuando rompí mis otros teléfonos! Después de jugar con esto, no pude hacer que el teclado de mi Nexus 6 se ajustara en posición horizontal. Me falta el lado derecho de mi teclado. Funciona bien en retrato, por lo que debería ser un caso raro cuando en realidad es una discapacidad. Afortunadamente, solo estoy bromeando y no necesito esto en este momento, pero es genial saberlo. ¡Trabajo muy inteligente! Gracias.
@Kristopher ¿También modificó la densidad y luego reinició el dispositivo? Algunas aplicaciones no responden a los cambios realizados en el tamaño de la pantalla.
Estaba pensando que no reinicié y tienes razón. Las cosas cambiaron entonces. Buen material (:
Funciona genial. Recibí un error denegado de android.permission.SHUTDOWN al intentar cambiar la densidad, pero eso fue solo porque mi OPO necesitaba un reinicio obligatorio después de un cambio en la densidad. Hice un reinicio manual y todo estuvo bien.
Por cierto, (en OPO, CyanogenOS) también podemos cambiar la densidad desde Configuración -> Pantalla y luces -> Densidad LCD. Automáticamente solicitará un reinicio.
@Firelord, ¿hay alguna manera de cambiar la pantalla en una dirección? Probé el comando 'overscan' y rompe muchas aplicaciones (incluso después de reiniciar). Entonces, usé el comando 'tamaño' para establecer la altura 100px menos. Desafortunadamente, se encogió hasta la mitad y hay relleno tanto en la parte superior como en la inferior. Pero, todas las aplicaciones están funcionando bien. ¿Hay alguna manera de desplazar la pantalla hacia arriba en el eje y 50 px, de modo que todo el relleno adicional esté en la parte inferior (los 100 px inferiores de mi pantalla no responden al tacto)? La palabra clave aquí es "traducir". No puedo encontrar ninguna lista completa de comandos en ninguna parte... :(
@BlackPanther Le agradecería que convierta ese comentario en una pregunta completa, ya que no puedo abordarlo aquí, incluso si puedo tener una respuesta. Además, otros usuarios también podrían ayudarte. :)
@Firelord Yo también quería hacer eso, pero entonces alguien podría estar ansioso por marcarlo como un duplicado... :'D Lo haré una pregunta separada de todos modos. Gracias :)
@Firelord lo he hecho como una pregunta separada