在Windows 8.1中的高分辨率屏幕上的Eclipse界面图标非常小

时间:2013-12-21 10:40:25

标签: eclipse windows-8.1

Eclipse(Kepler)界面中的各种图标和按钮在具有3200x1800px屏幕的笔记本电脑上非常非常小。除非我的鼻子离屏幕几厘米,否则很难看到出现表示文件错误的红色错误装饰。

我一直在调整操作系统中的屏幕分辨率和其他设置(Windows 8.1),这有所帮助,但导致其他应用程序看起来太大,即使这样Eclipse图标也很小。在Eclipse首选项(窗口>首选项>对话框字体)中放大字体不会影响图标大小。

有没有简单的方法来强制更大的图标?任何工作(我使用放大镜,但这是一个相当笨重的解决方案)?我应该买一个放大镜并将它放在我的鼠标旁边吗?也许有人应该用嵌入放大镜制作鼠标? :)

感谢。

25 个答案:

答案 0 :(得分:36)

我认为一个解决方案是在Eclipse JAR上运行批处理操作,其中包含图标并将其大小加倍。经过一些修补,它奏效了。结果非常好 - 还有一些“顽固”的图标很小但看起来很好看。

Eclipse After Processing on QHD

我将代码放在一个小项目中: https://github.com/davidglevy/eclipse-icon-enlarger

该项目的工作原理是:

  1. 迭代eclipse基目录中的每个文件(在参数行中指定)
  2. 如果文件是目录,请在输出文件夹中创建一个新目录(在参数行中指定)
  3. 如果文件是PNG或GIF,请双击
  4. 如果文件是另一种类型的副本
  5. 如果文件是JAR或ZIP,请创建目标文件并使用类似的过程处理内容:  一个。图像加倍  湾其他文件将按原样复制到ZipOutputStream中。
  6. 我在这个解决方案中遇到的唯一问题是它真的只能运行一次 - 如果你需要下载插件,那么在原始位置这样做并重新应用图标增加批处理过程。

    在戴尔XPS上运行大约需要5分钟。

    很高兴获得建议/改进,但这只是一个临时解决方案,而我们正在等待Eclipse团队解决问题。

答案 1 :(得分:16)

为了完成,我想我会在Eclipse 4.6 Neon https://www.eclipse.org/downloads/index-developer.php(当前的开发人员版本)中解决这个问题。 图标看起来有点悲伤(低分辨率),但至少它们在我的4k屏幕上正确缩放。

答案 2 :(得分:13)

我也在这个问题上苦苦挣扎了一点。我注意到很多人发布了非常复杂的解决方案,但是有一种更简单的方法!它只是一个程序,您不必修改脚本或安装第三方工具。该问题与如上所述的高DPI缩放比例有关,但我认为很多人缺少的是您无法直接在启动器本身上修改兼容性设置。启动器和Eclipse是两个不同的程序!您需要浏览至Eclipse.exe并在此处覆盖“高DPI缩放”选项。设置后,您可以正常使用启动器。启动器将运行可执行文件,启动eclipse.exe,由于您在.exe上设置了兼容性设置,因此它将使用这些设置运行。我花了大约10分钟的时间来跟踪该exe的位置,因此,如果它有帮助,则位于:C:\ Users \ username \ AppData \ Local \ Yatta \ Launcher \ installations \ eclipse-ide-for-java-developers \ eclipse。 exe

以下是我如何设置兼容性设置的屏幕截图。

Eclipse.exe compatibility settings

是的,在调整此设置之前,图标非常小。我尝试在启动器上设置兼容性设置,但显然无法解决问题。但是,设置eclipse.exe图标的替代高DPI设置后,它们的大小现在为正常大小。让我知道这是否对其他人有用!

答案 3 :(得分:11)

我正在使用戴尔XPS 15.而不是满足于分辨率和放大倍数以及所有这些,我只是做了以下事情:

  • 右键单击启动器图标
  • 点击“属性”
  • 选择“兼容性”标签
  • 选择“Windows XP(Service Pack 3)”为“在兼容模式下运行此程序:”。

一切似乎工作正常,显示效果很好(如果有点模糊/像素)。我能看到的唯一区别是标题栏是Windows XP风格(哦不!)。

我很想知道这是否适用于其他人,如果有人遇到任何问题。

答案 4 :(得分:9)

我发现最简单的方法是创建一个强制Windows扩展应用程序的清单文件。它是模糊和不理想的,但比几乎看不见的UI更好!看来这种技术也适用于任何应用程序。

在与eclipse.exe相同的文件夹中创建 eclipse.exe.manifest 文件,并在其中放置以下XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0" processorArchitecture="*"
      publicKeyToken="6595b64144ccf1df"
      language="*">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.VC90.CRT"
      version="9.0.21022.8"
      processorArchitecture="amd64"
      publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="asInvoker"
        uiAccess="false"/>
    </requestedPrivileges>
  </security>
</trustInfo>

<asmv3:application>
  <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
  </asmv3:windowsSettings>
</asmv3:application>

</assembly>

答案 5 :(得分:7)

最好的方法是使用资源调谐器和添加

等编辑exe清单
    <application xmlns="urn:schemas-microsoft-com:asm.v3"><windowsSettings><ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings" xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware></windowsSettings></application>        

在依赖后将exe设置为dpi不知道。这样程序会有点像素化,但它会有一个舒适的大小。

答案 6 :(得分:6)

我找到了一个建议,建议将以下内容添加到eclipse.ini

-Dswt.enable.autoScale=true
-Dswt.autoScale=200
-Dswt.autoScale.method=nearest

这使Windows 10上图标的大小增加了一倍。我正在使用Eclipse版本:2020-03(4.15.0)

答案 7 :(得分:6)

上个月我已经找到了解决这个问题的方法,但我还没有找到理想的解决方案。似乎应该有办法解决它,但我找不到它。

我在Windows 8.1中使用具有2560x1600屏幕且200%放大率设置的笔记本电脑(这使得它看起来像1280x800屏幕但更清晰)。

支持这种“HiDPI”模式的应用程序看起来很华丽,但那些不支持的应用程序(例如Eclipse)显示几乎不可读的小图标。

我还使用过时的Visual Studio版本。对于HiDPI来说还没有更新(显然MS希望我使用更新版本的VS),但它仍然适用于HiDPI屏幕,因为它只是扩展了两倍 - 图标和字母的大小是正常的,但它们看起来分辨率较低。

在我看到VS如何工作之后,我开始寻找一种以相同模式启动Eclipse的方法,因为从技术上来说,像VS一样扩展起来并不困难。我以为我可以选择在该模式下启动Eclipse。我找不到它。

毕竟,我最终将屏幕分辨率降低到1/4(从2560x1600降至1280x800),没有放大(从200%到100%),并且在Eclipse更新支持之前没有利用高分辨率屏幕因为我必须做一些工作,但我绝望地等待这个问题的答案。

答案 8 :(得分:5)

遇到相同的问题,要解决该问题,请创建启动器的快捷方式,右键单击>属性>兼容性>勾选“覆盖高DPI缩放行为”,然后从下拉菜单中选择“系统增强”,如下图所示。更改后重新启动蚀。

enter image description here

答案 9 :(得分:5)

最简单的解决方案是去Eclipse Neon。作为此版本的一部分,所有错误都已修复。 https://bugs.eclipse.org/bugs/show_bug.cgi?id=421383

答案 10 :(得分:3)

-SurfacePro3 -

  • 下载并解压缩eclipse&#34; 32位版本&#34;。
  • 运行&#34; Windows XP模式&#34;。

答案 11 :(得分:3)

Windows Xp的兼容模式,它仅适用于Eclipse 32位版本,在此兼容模式下运行后,图标和文本的大小合适,但模糊,因为它们从原始分辨率缩放到屏幕分辨率这样做会降低质量。

答案 12 :(得分:3)

我通过创建(Linux)shellcript(.sh)来修复@Sigh的解决方案来做类似的事情。这非常粗糙,残酷,需要采用您的特定系统。 使用风险自负。可能会破坏整个安装。 在运行此脚本之前备份文件夹。可以改进脚本。

#!/bin/bash

for J in *.jar
do
        echo "Copying $J..."
        mkdir -p "/tmp/$J"
        cp "$J" "/tmp/$J/"
        cd "/tmp/$J"

        echo "Extracting $J..."
        jar xf "$J"
        rm "$J"

        echo "Processing images..."
        find . -name "*.gif" -exec convert {} -resize 200% {} \;

        echo "Compressing $J..."
        if [ `ls .[^.]* 2>/dev/null | wc -l` = 0 ]
        then
                jar cf "$J" *
        else
                jar cf "$J" * .[!.]*
        fi
        cd -
        mv $J{,-bak}
        mv "/tmp/$J/$J" .
        rm -rf "/tmp/$J"

        echo "Done."
        echo ""
done

/opt/eclipse/plugins~/.eclipse/org.eclipse.platform_4.x.x/plugins中运行此操作(或安装的任何路径)。与@ Sigh的解决方案相同的问题:这是一个残酷的解决方案&#34;每次更新或新安装后都会中断。

脚本可以完善:

  • 忽略没有/ icons /文件夹的.jar文件
  • 仅调整16x16的图像,以便在每次更新/安装后再次运行

需要imagemagick


注意事项

  • 它并不适用于所有图标。
    • 有谁知道其他资产在哪里或者为什么没有调整大小?也许他们不是.gif
  • Project Explorer图标搞砸了。

欢迎修复!

答案 13 :(得分:3)

查看Neon (4.6) M6 - New and Noteworthy,里程碑版本包含一些图像自动缩放功能(例如工具栏)。

SWT提供基于分辨率的自动缩放

  

SWT现在可以自动在Windows上的高DPI显示器上缩放图像   和Linux一样,类似于OS X对OS X的支持。在此缺席的情况下   对于高分辨率图像,SWT会自动缩放可用图像   确保缩放基于SWT的Eclipse应用程序   与监视器的分辨率成比例。

     

enter image description here

     

通过设置此VM,可以在Windows和GTK上禁用此功能   eclipse.ini中的参数为false或-vmargs之后的命令行:

     

-Dswt.enable.autoScale =假

     

无法在Mac上禁用自动缩放,因为它是由。提供的   OS。

     

警告:我们已经意识到某些缩放图像在比例因子上看起来很糟糕   不到200%。这将在M7中得到改进。此外,我们还是   致力于在Platform UI中支持高DPI图像,以便插件   提供商可以添加高DPI图标而无需进行任何代码更改。



或者这有助于在Eclipse Mars API中添加高分辨率

  

添加了新的API以支持渲染   高DPI监视器上的高分辨率图像。两个建设者有   已添加到Image类。他们接受图像提供者回调   允许客户提供与分辨率相关的图像版本:

public interface ImageDataProvider {
  public ImageData getImageData (int zoom);
}
public interface ImageFileNameProvider {
  public String getImagePath (int zoom);
}
     

根据用户的显示器配置,SWT将请求图像   具有相应的缩放级别。这是一个显示3的示例   原始图像,然后是分辨率变化的变体   取决于您的显示器的分辨率:Snippet367.java

     

请注意,这只是支持高分辨率的第一步   SWT和基于Eclipse的应用程序中的图像。工作正在进行中   在平台中采用新的API。此外,SWT的更多工作是   需要通过正确支持绘制成高分辨率图像   GC

支持高DPI监控的API
http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2FwhatsNew%2Fplatform_isv_whatsnew.html

答案 14 :(得分:2)

Following solution worked for me

首先,您需要添加此注册表项

    atlasTextures = new Texture2D[6] {frontTexture, topTexture, backTexture, bottomTexture, leftTexture, rightTexture };

    Texture2D atlas = new Texture2D(1024, 1024);
    Rect[] UVs = atlas.PackTextures(atlasTextures, 2, 1024);

    GetComponent<Renderer>().material.mainTexture = atlas;

接下来,与可执行文件同名的清单文件必须与可执行文件位于同一文件夹中。该文件名为eclipse.exe.manifest,包含:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest (DWORD) to 1

你可以在这里找到更多细节

答案 15 :(得分:1)

JaxEnter 中有一篇很好的文章来讨论HiDPI for Eclipse的工作

答案 16 :(得分:1)

最终对我有用的是将清单文件添加到javaw.exe ,就像Heikki Juntunen在https://bugs.eclipse.org/bugs/show_bug.cgi?id=421383#c66所说的那样

有关如何编辑注册表和创建清单文件的说明,其中由Matthew Cochrane在https://bugs.eclipse.org/bugs/show_bug.cgi?id=421383#c60和@KItis撰写,其中写了说明here

我在这里放了一个帖子的副本:

首先,您需要添加此注册表项

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest (DWORD) to 1

接下来,与可执行文件同名的清单文件必须与可执行文件位于同一文件夹中。该文件名为eclipse.exe.manifest,包含:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
    <description>eclipse</description>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3"
                               level="asInvoker"
                               ms_asmv3:uiAccess="false">
                </requestedExecutionLevel>
            </requestedPrivileges>
        </security>
    </trustInfo>
    <asmv3:application>
        <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
            <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
        </asmv3:windowsSettings>
    </asmv3:application>
</assembly>

答案 17 :(得分:1)

谢谢叹息David Levy。我无法在Eclipse上开发你的解决方案&n; n。 我不得不在你的代码中添加一个coupla catch(例外)来使它工作:

            while (srcEntries.hasMoreElements()) {
                    ZipEntry entry = (ZipEntry) srcEntries.nextElement();
                    logger.info("Processing zip entry ["+ entry.getName() + "]");

                    ZipEntry newEntry = new ZipEntry(entry.getName());


                    try { outStream.putNextEntry(newEntry); } 
                    ***catch (Exception e) { 
                        logger.error("error: ", e);
                        outStream.closeEntry();
                        continue;*
                    }**

答案 18 :(得分:0)

这是另一个命令行解决方案,但这适用于Windows。

它需要安装winrar(编辑设置的winrar行指向winrar安装)。

它还需要安装imagemagick并在命令行中添加其路径。

最后一条评论是我建议首次打开Eclipse之前运行它(即全新安装)。有些图标可以从jar中自动解压缩并保存在eclipse / configuration / org.eclips.osgi / ...(可能在其他文件夹中),编辑.jar文件可以防止调整图标大小。您可以删除此文件夹,它可能会再次自动提取,但我无法确认。

要运行,只需在eclipse / plugins目录中创建一个doubler.bat文件,它应该将小于32x32的任何图标调整为该比例大小。

以下是代码:

@echo off
set winrar="C:\Program Files\WinRAR\winrar.exe"
set startpath=%~dp0

::All *.jar in this folder
FOR %%G in (*.jar) do (call :EachJar "%%G")

GOTO :eof

:EachJar
  ::echo %1
  set nameWOQuotes=%~1
  mkdir "tmp\%nameWOQuotes%"
  ::copy "%nameWOQuotes%" "tmp\%nameWOQuotes%.bak" >NUL
  %winrar% x -inul "%nameWOQuotes%" *.jpg *.gif *.png *.tif *.tiff "tmp\%nameWOQuotes%\"
  ::pause
  cd "tmp\%nameWOQuotes%"
  FOR /R .\ %%H in (*.jpg *.gif *.png *.tif *.tiff) do ( 
    ::echo %nameWOQuotes%-%%~nxH >> "%startpath%\output.txt"
    identify "%%H" >> "%startpath%\output.txt"
   convert "%%H" -resize 32x32^< "%%H" )
  %winrar% a -r -u "%startpath%\%nameWOQuotes%" "*"
  cd "%startpath%"
  rmdir /s /q "tmp\%nameWOQuotes%"
Goto :eof

它创建一个文件output.txt,并在转换之前插入所有ORIGINAL图像元数据,无论它是否改变了大小。

答案 19 :(得分:0)

如果您不想安装较新版本的eclipse

如上所述here, 在 eclipse.init 文件中,在-Dswt.autoScale=exact之后添加-vmargs,您就可以了。

此处exact将图标缩放为原生缩放。 但你必须使用模糊和锯齿状的图标进行调整。

答案 20 :(得分:0)

当我将默认的Windows 10语言从Eng更改为Italian时,我遇到了这个问题,当默认语言是Eng时安装了Eclipse。将Windows语言还原为Eng并重新启动解决了问题。我不知道发生了什么,Windows重命名了一些像C:\ Users这样的文件夹,用你的默认语言翻译它(即C:\ Utenti),这可能会导致问题。

答案 21 :(得分:0)

以下更改无缝进行。

引用CrazyPenguinreply

“对于像我这样的人,他们发现即使在新的Eclipse上它也没有进行缩放,请参见:swt-autoscale-tweaks基本上,我在我的计算机上添加了 -Dswt.autoScale = quarter eclipse.ini文件。”

答案 22 :(得分:0)

这是我的解决方案灵感来自@ Sigh的解决方案(这个没有使用maven):

https://github.com/gitAmrit/EclipseIconEnlarger/tree/master#eclipseiconenlarger

这可以通过搜索所有小于或等于16x16px的图像并根据用户想要的任何因素进行缩放来实现。

运行该实用程序: java images.EclipseIconEnlarger eclipseBasePath magnificaitonfactor

例如:java images.EclipseIconEnlarger C:\ Users \ Amrit \ Codes \ eclipse 2

eclipseBasePath = eclipse.exe所在的路径,例如C:\ Users \ Amrit \ Codes \ eclipse magnificationfactor =图像应放大的因子,例如: 2 =双倍

答案 23 :(得分:0)

对于任何在升级Windows 10后(2018年4月更新)看到此消息的人,DPI Scaling Override设置已移到专用窗口中:

enter image description here

enter image description here

答案 24 :(得分:-1)

Jae的上述解决方案对我有用。清单解决方案对我不起作用。 谢谢Jae。

设置:在我的Windows 8.1 64位非平板笔记本电脑上,我用jdk 64位下载了eclipse 64位。

  1. 右键单击桌面以访问屏幕分辨率并降低 屏幕分辨率从3000级显示到2048 x 1152.
  2. 点击make text和其他项目的大小链接和 将它改为150%,而不是额外的额外大 - 250%。
  3. 已注销并重新登录。
  4. 重新启动Eclipse,即使它有点,现在也可以看到图标 现在更小,但更清晰。