2011-01-07 8 views
2

私の問題を教えてください。私は画面の解像度を変更したい。 アプリケーションで変更することはできますが、アプリケーションの 画面のみが変更されます。私はシステムの解像度を設定したいので、 アプリケーションが前面で実行されていることは重要ではありません。デバイスの解像度は1280 * 720 pと設定されています。私はそれを1260 * 680にすることはできますか? Androidソースコードを変更する必要がある場合は、できます。変更する場所を教えてください。 あなたのお手伝いを待っています。プログラムによる画面解像度の変更方法

+0

私は[LCDの密度](http://www.addictivetips.com/mobile/change-android-screen-resolution-with-lcd-density/)に遭遇しました。私はそれがどのようにそれを行うかを見つけることができるかどうかを見て... – fredley

+0

私の問題は密度ではありません。それはピクセルです。私はディスプレイの実際のサイズを変更したい。 – sjor

+1

その後スタンリーナイフを使用してください! – fredley

答えて

2

This thread on xda-developers正しいトラックに設定する必要があります。

+0

Thx。しかし、私は密度を変えたくありません。私はディスプレイを縮小するために実際のピクセルを変更する必要があります。 – sjor

+1

@ user511853実際のピクセルを変更するには、画面を切り取って新しいピクセルを配置する必要があります。[ピクセル密度](http://en.wikipedia.org/wiki/Pixel_density)を変更することはお約束です! – fredley

-3

Windowsを使用していて、JNIの使い方を知っている場合、マイクロソフトはC++ Win32の関数呼び出しで、ChangeDisplaySettingsEx()EnumDisplaySettings()を提供しています。 WARNING実験バギーのもの:これまであまりにも有効な回答を検索し、私は解決策にリードを持って

+0

Androidについて話しています。 –

+3

他のユーザーはこのスレッドに画面解像度でAndroid以外の検索を行います。私がリストした機能は、それらを助けるでしょう。 –

0

/* 
Requires android.permission.WRITE_SETTINGS 
and android.permission.WRITE_SECURE_SETTINGS, thus it requires the app to be a system app. 
*/ 
public void changeResolution(int x, int y){ 
    try { Class c = Class.forName("android.os.ServiceManager"); 
     try { Method method = c.getDeclaredMethod("checkService", String.class); 
      try { 
       IWindowManager mWindowManager = IWindowManager.Stub.asInterface((IBinder) method.invoke(null,Context.WINDOW_SERVICE)); 
       try { mWindowManager.setForcedDisplaySize(Display.DEFAULT_DISPLAY,x,y); 
       } catch (RemoteException e) {e.printStackTrace();} 
      } catch (IllegalAccessException e) {e.printStackTrace();} 
      catch (InvocationTargetException e) {e.printStackTrace();} 
     } catch (NoSuchMethodException e) {e.printStackTrace();} 
    } catch (ClassNotFoundException e) {e.printStackTrace();} 
} 

は、プロジェクトにIWindowManagerの減少AIDLバージョンを追加します。 /アプリを/src/main/aidl/android/view/IWindowManager.aidl

package android.view; 
interface IWindowManager 
{ 
    boolean startViewServer(int port); // Transaction #1 
    boolean stopViewServer();   // Transaction #2 
    boolean isViewServerRunning();  // Transaction #3 

    void setForcedDisplaySize(int displayId, int width, int height); 
    void clearForcedDisplaySize(int displayId); 
    void setForcedDisplayDensity(int displayId, int density); 
    void clearForcedDisplayDensity(int displayId); 
} 

アプリがシステムにあることが必要となるフォルダをアプリ。 これは確かに何かをしますが、今は深刻なバグにつながります。 再起動すると変更がキャンセルされるようです。

フィードバックをお待ちしております。

関連する問題