Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以编程方式更改屏幕分辨率?_Java_Android_Resolution - Fatal编程技术网

Java 如何以编程方式更改屏幕分辨率?

Java 如何以编程方式更改屏幕分辨率?,java,android,resolution,Java,Android,Resolution,让我告诉你我的问题。我想改变我的屏幕分辨率。 我可以在应用程序中更改它,但它只更改应用程序的 屏幕。我想设定系统的分辨率,这样就不重要了 应用程序正在前端运行。我的设备的分辨率设置为1280 *720便士。我能把它改成1260*680吗?如果需要在 Android源代码,我可以。告诉我在哪里换车。等待 你的帮助 < P>应设置正确的路径。 < P>如果您使用Windows并知道如何使用JNI,微软提供C++ Win32函数调用来执行此操作:和.< /P> < P>搜索一个有效的答案,但我有一个解

让我告诉你我的问题。我想改变我的屏幕分辨率。 我可以在应用程序中更改它,但它只更改应用程序的 屏幕。我想设定系统的分辨率,这样就不重要了 应用程序正在前端运行。我的设备的分辨率设置为1280 *720便士。我能把它改成1260*680吗?如果需要在 Android源代码,我可以。告诉我在哪里换车。等待
你的帮助

< P>应设置正确的路径。

< P>如果您使用Windows并知道如何使用JNI,微软提供C++ Win32函数调用来执行此操作:和.< /P> < P>搜索一个有效的答案,但我有一个解决方案: 警告:实验性童车材料:

/*
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();}
}
向您的项目中添加简化的AIDL版本的iWindows Manager: /app/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);
}
应用程序需要位于系统应用程序文件夹中。 它确实有作用,但现在它也会导致严重的错误。 重新启动似乎会取消更改


等待对此的反馈。

我遇到了一个应用程序,它正是这样做的。看看我能不能找到它是怎么做到的…我的问题不是密度;这是关于像素的。我想更改显示的实际大小。如何从java代码更改分辨率?我的设备(android 4.4)连接到HDMI屏幕,我可以使用系统设置>显示>分辨率>DACOUT_1080P_60并将显示器切换到1080P,但即使我设置分辨率为480pThx,我的应用程序也总是渲染到720p。但是,我不想改变密度。我想更改真实像素以缩小显示。@user511853更改真实像素需要撕开屏幕并放入新的屏幕。改变就是你想要的,答应我!我们谈论的是Android。其他用户将通过屏幕分辨率上的非Android搜索来访问此线程。我列出的函数将帮助他们。