Redimensionner l'écran pour l'afficher uniquement sur la partie active de l'écran tactile semi-fonctionnel

12

J'ai un téléphone android oneplus. L'écran tactile a récemment commencé à mal fonctionner de sorte que le centimètre inférieur de l'écran ne fonctionne pas, mais le reste de l'écran fonctionne parfaitement bien. Malheureusement, le centimètre inférieur contient de nombreuses fonctions importantes. Existe-t-il un moyen de redimensionner mon affichage ou ma résolution de manière à exclure le centimètre inférieur de mon écran?

Selah
la source
Comme il s'agit du centimètre inférieur, vous pouvez probablement le configurer pour utiliser à la fois les boutons de navigation capacitifs et à l'écran. De cette façon, la barre de navigation va remplir la partie inutilisable et vous pouvez toujours utiliser les boutons capacitifs pour naviguer.
user1762507

Réponses:

14

Remarques:

  • Ma solution est testée sur Stock Android 4.4.2 et Stock CyanogenOS 12 (5.0) de OnePlus One, et devrait fonctionner pour Android 4.3 et supérieur (sur la base de cette réponse ).
  • J'ai mentionné où l'accès root est requis.
  • Cette réponse est tirée de ma réponse sur une question un peu différente ici .

J'ai utilisé le commentaire suivant comme terrain de travail:

Les 20% inférieurs de mon Nexus 4 ne fonctionnent pas. J'utilise: wm overscan 0,0,0,210pour que android WM ne dessine rien dans cette zone afin que je puisse à nouveau exploiter toutes les zones dessinées complètement. - Thrustmaster

Instructions:

  1. Activez le débogage USB sur votre téléphone.
  2. Installez les outils ADB sur votre PC, connectez-y votre appareil et assurez-vous que l'appareil est détecté adb devices.
  3. Nous devons connaître la résolution et la densité d'affichage de l'appareil. Dans le terminal / cmd, entrez adb shell dumpsys display | grep mBaseDisplayInfopour afficher les informations relatives à l'affichage. La sortie pourrait ressembler à:

    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}
    

    Les informations pertinentes dans mon cas sont:

    • réel 1080x1920
    • densité 480
    1. Les commandes les plus utiles à utiliser sont:

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

      Mon écran de lancement par défaut sans réglages ressemblait à:

    2. Pour réduire la sortie d'écran en bas, exécutez la commande:

      adb shell wm overscan 0,0,0,100
      

      Notez que j'ai utilisé une réduction supplémentaire jusqu'à 0,0,0,300et la sortie était comme ceci:

      Ajustez la valeur à vos besoins souhaités.

    3. Vous devrez peut-être corriger la densité car l'affichage peut sembler étrange . La densité d'affichage par défaut de mon appareil est de 480 dpi, je l'ai donc modifié comme suit:

      adb shell wm density 440
      

      et l'écran résultant était comme ça . Une application en résolution optimisée.

    4. Notez que vous pouvez utiliser adb shell wm density resetet adb shell wm overscan resetpour revenir respectivement à la densité et à la résolution par défaut.
    5. Maintenant que la "zone tactile morte" a été prise en charge, il est temps d'utiliser des touches virtuelles / programmables (uniquement si vous en avez besoin).

      1. Izzy l' a déjà couvert dans cette réponse . Sinon, vous pouvez utiliser Gravitybox LP (pour les utilisateurs de Lollipop) ou Gravitybox KK (pour les utilisateurs de Kitkat). Il s'agit d'un module Xposed, et nécessite un accès root et Xposed Framework installé.

        Installez, activez et lancez Gravitybox → Réglages de la barre de navigationActiver la barre de navigation → effectuez un redémarrage, et les touches programmables aka Barre de navigation seront trouvées activées.

      2. La ROM personnalisée comme CyanogenMod et certaines ROM d'origine a la possibilité d'activer les touches programmables (boutons) sous Paramètres . Vous pouvez utiliser cette option car elle ne nécessite aucun accès root.

      3. Après quelques ajustements supplémentaires, l'écran final de mon Android 5.0 ressemblait à:

        IMG: Après quelques ajustements supplémentaires, l'écran final de mon Android 5.0 ressemblait à

Nous sommes prêts à partir!

Seigneur du feu
la source
J'aurais aimé savoir ça quand j'ai cassé mes autres téléphones! Après avoir joué avec cela, je n'ai pas pu régler mon clavier Nexus 6 en mode paysage. Il me manque le côté droit de mon clavier. Cela fonctionne bien en mode portrait, donc ce devrait être un cas rare alors qu'il s'agit en fait d'un handicap. Heureusement, je suis juste en train de foirer et je n'ai pas besoin de ça pour le moment mais c'est cool de savoir. Un travail intelligent! Je vous remercie.
Kristopher
@Kristopher Avez-vous également modifié la densité et ainsi redémarré l'appareil? Certaines applications ne répondent pas aux modifications apportées à la taille de l'affichage.
Firelord
1
Je pensais que je n'avais pas redémarré et tu as raison. Les choses ont alors changé. Good stuff (:
Kristopher
1
Fonctionne très bien. J'obtenais une erreur android.permission.SHUTDOWN refusée lorsque j'essayais de modifier la densité, mais c'était uniquement parce que mon OPO avait besoin d'un redémarrage obligatoire après un changement de densité. A fait un redémarrage manuel et tout allait bien.
Shri
1
BTW, (Dans OPO, CyanogenOS), nous pouvons également modifier la densité à partir de Paramètres -> Affichage et lumières -> Densité LCD. Il vous demandera automatiquement un redémarrage.
Shri