Значки интерфейса Eclipse очень маленькие на экране с высоким разрешением в Windows 8.1


различные значки и кнопки в интерфейсе Eclipse (Kepler) очень, очень маленькие на ноутбуке с экраном 3200x1800px. Красное украшение ошибки, которое, как представляется, указывает на ошибки в файлах, трудно увидеть, если мой нос не находится в нескольких сантиметрах от экрана.

Я играл с регулировкой разрешения экрана и других настроек в операционной системе (Windows 8.1), что помогает, Но приводит к тому, что другие приложения появляются слишком большими, и даже тогда значки Eclipse неудобно маленькие. Увеличение шрифтов в настройках Eclipse (окно>настройки>диалоговый шрифт) не влияет на размер значка.

есть ли простой способ заставить большие иконки? Любая работа вокруг (я использовал лупу, но это довольно неуклюжее решение)? Должен ли я просто купить увеличительное стекло и держать его рядом с моей мышкой? Может быть, кто-то должен сделать мышь с увеличительным стеклом встроенным? :)

спасибо.

22 80

22 ответа:

Я искал решения для этой проблемы в течение последнего месяца, но я еще не нашел идеального решения. Кажется, должен быть способ обойти это, но я просто не могу его найти.

Я использую ноутбук с экраном 2560x1600 с настройкой увеличения 200% в Windows 8.1 (что делает его похожим на экран 1280x800, но более четким).

приложения, поддерживающие такой режим "HiDPI", выглядят просто великолепно, но те, которые этого не делают (например, Eclipse), показывают крошечные значки, которые почти нечитабельно.

Я также использую устаревшую версию Visual Studio. Это не было обновлено для HiDPI (очевидно, MS хочет, чтобы я использовал более новую версию VS), но он по-прежнему работает нормально с экранами HiDPI, так как он просто масштабирует вещи в два раза-размеры значков и букв нормальные, но они выглядят с более низким разрешением.

после того, как я увидел, как работает VS, я начал искать способ запуска Eclipse в том же режиме, так как технически было бы не очень сложно просто масштабировать вещи вроде как не против. Я думал, что будет вариант, который я мог бы установить для запуска Eclipse в этом режиме. Но я не смог его найти.

В конце концов, я закончил тем, что снизил разрешение экрана до 1/4 (от 2560x1600 до 1280x800) без увеличения (от 200% до 100%) и не использовал экран с высоким разрешением до тех пор, пока Eclipse не обновится, чтобы поддержать его, так как мне пришлось сделать некоторую работу, но я отчаянно жду ответа на этот вопрос.

Я решил, что одним из решений будет запуск пакетной операции на Eclipse JAR, которые содержат значки и удваивают их размер. Немного повозившись, это сработало. Результаты довольно хорошие - есть еще несколько "упрямых" значков, которые крошечные, но большинство из них выглядят хорошо.

Eclipse After Processing on QHD

Я собрал код в небольшой проект: https://github.com/davidglevy/eclipse-icon-enlarger

проектные работы на:

  1. итерация по каждому файлу в базовом каталоге eclipse (указан в строке аргумента)
  2. если файл является каталогом, создайте новый каталог под настоящим в выходной папке (указанной в строке аргумента)
  3. если файл является PNG или GIF, double
  4. если файл является копией другого типа
  5. если файл является JAR или ZIP, создайте целевой файл и обработайте содержимое с помощью аналогичного процесса: а. Изображения двойной б. Другие файлы копируются в ZipOutputStream, как есть.

единственная проблема, которую я нашел с этим решением, заключается в том, что он действительно работает только один раз - если вам нужно загрузить Плагины, сделайте это в исходном месте и повторно примените пакетный процесс увеличения значка.

на Dell XPS требуется около 5 минут для запуска.

рад за предложения / улучшения, но это действительно просто решение adhoc, пока мы ждем команды Eclipse получи дозу.

для завершения я думал, что добавлю, что эта проблема решена в Eclipse 4.6 Neon https://www.eclipse.org/downloads/index-developer.php (текущая версия разработчика). Значки выглядят немного грустно (низкое разрешение), но, по крайней мере, они правильно масштабируются на моем экране 4k.

Я работаю на Dell XPS 15. Вместо того, чтобы набивать вокруг с разрешениями и увеличениями и все такое, я просто сделал следующее:

  • щелкните правой кнопкой мыши значок запуска
  • нажмите на кнопку "Свойства"
  • выберите вкладку "Совместимость"
  • выберите " Windows XP (Service Pack 3) "для"запустить эту программу в режиме совместимости для:".

все, кажется, работает нормально и дисплей выглядит хорошо (если немного размыто / пиксельно). Единственная разница, которую я вижу, заключается в том, что строка заголовка находится в стиле Windows XP (О нет!!!).

Мне любопытно узнать, работает ли это для других, и если кто-нибудь столкнется с какими-либо проблемами.

Я нашел самый простой способ создать файл манифеста, который заставляет Windows масштабировать приложения. Это размыто и неидеально, но лучше, чем почти невидимый пользовательский интерфейс! Кажется, этот метод применим и к любому приложению.

создать затмение.исполняемый.манифест файл в той же папке, что и eclipse.exe и поместите в него следующий 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>

лучший способ-отредактировать манифест exe с помощью чего-то вроде Resource tuner и добавить

    <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 не знают. Таким образом, программа будет немного пиксельной, но она будет в удобном размере.

лучшее легкое решение-пойти на Eclipse Neon. Все ошибки исправлены в рамках этого выпуска. https://bugs.eclipse.org/bugs/show_bug.cgi?id=421383

-SurfacePro3 -

  • Загрузите и распакуйте eclipse "32bit Version".
  • запуск в "режиме Windows XP".

режим совместимости для Windows Xp, он доступен только для 32-битной версии Eclipse, и после запуска в этом режиме совместимости значки и текст будут иметь правильный размер, но размытые, потому что они масштабируются от их собственного разрешения до разрешения экрана, и при этом качество теряется.

я исправил решение @Sigh, создав (Linux) shellscript (.sh), чтобы сделать что-то подобное. Это очень грубо, жестоко и требует принятия для вашей конкретной системы. используйте на свой страх и риск. это может нарушить всю вашу установку. сделайте резервные копии папок перед запуском этого сценария. скрипт может быть улучшен.

#!/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 (или любые пути для вашей установки). Те же вопросы, как с @вздыхать по решение: это жестокое "исправление" и ломается после каждого обновления или новой установки.

скрипт можно усовершенствовать:

  • игнорировать .jar файлы без / иконки / папки
  • только изменить размер изображения, которые 16x16, так что вы можете запустить это снова после каждого обновления/установки

требует imagemagick.


предостережения

  • он не работает на всех иконах.
    • кто-нибудь знает, где другие активы, или почему они не изменяются? Возможно, это не так .gif?
  • значки обозревателя проектов перепутались.

исправления приветствуются!

посмотреть Neon (4.6) M6 - новый и примечательный, релиз milestone содержит некоторое автоматическое масштабирование для изображений (например, для панели инструментов).

SWT обеспечивает автоматическое масштабирование на основе разрешения

SWT теперь автоматически масштабирует изображения на мониторах с высоким разрешением на Windows и Linux, похожий на поддержку Retina Mac на OS X. В отсутствие из изображений с высоким разрешением, SWT будет автоматически масштабировать доступные изображения убедитесь, что Приложения на основе SWT, такие как Eclipse, масштабируются пропорционально разрешению монитора.

enter image description here

эту функцию можно отключить в Windows и GTK, установив эту виртуальную машину аргумент false в eclipse.ini или в командной строке после -vmargs:

-Dswt.включить.автомасштаб=ложь

автоматическое масштабирование не может быть отключен на Mac, как это предусмотрено ОС.

предостережения: мы знаем что некоторые масштабированные изображения плохо смотрятся при масштабных коэффициентах менее 200%. Это будет улучшено в M7. Кроме того, мы работа над поддержкой изображений с высоким разрешением DPI в интерфейсе платформы, так что плагин поставщики могут Добавлять значки с высоким разрешением без каких-либо изменений кода.



Или, может быть, это помогает, в Eclipse Mars API для высокого разрешения был добавлен

добавлены новые API для поддержки рендеринга высокое разрешение изображения с высоким разрешением мониторы. Два конструктора имеют были добавлены к классу изображения. Они принимают обратные вызовы поставщика изображений это позволяет клиентам предоставлять зависимые от разрешения версии изображений:

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

в зависимости от конфигурации монитора пользователя, SWT будет запрашивать изображения с соответствующим масштабом. Вот пример, который отображает 3 исходные изображения, за которыми следуют варианты, разрешение которых изменяется в зависимости от разрешения вашего монитора: Snippet367.java.

обратите внимание, что это только первый шаг для поддержки высокого разрешения изображения в приложениях на основе SWT и Eclipse. Ведется работа по примите новые API в платформе. Кроме того, больше работы в SWT-это требуется для правильной поддержки рисования в изображениях с высоким разрешением через СБОРЩИК МУСОРА.

API для монитора с высоким разрешением support
http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2FwhatsNew%2Fplatform_isv_whatsnew.html

Я тоже немного боролся с этой проблемой. Я заметил, что многие из вас опубликовали действительно сложные резолюции, но есть гораздо более простой способ сделать это! Это просто программа, и вам не нужно изменять скрипты или устанавливать сторонние инструменты. Проблема связана с высоким масштабированием DPI, как упоминалось выше, но я думаю, что многие из вас отсутствуют, что вы не можете напрямую изменять настройки совместимости на самой пусковой установке. Пусковая установка и eclipse-это две разные программы! Вы нужно перейти к затмению.exe и переопределить параметр масштабирования с высоким разрешением DPI там. После установки, вы можете использовать пусковую установку как обычно. Лаунчер нажмите на исполняемый файл, запустить затмение.exe и после настройки совместимости .exe он будет работать с использованием этих настроек. Я потратил как 10 минут, отслеживая, где exe был так, если его любая помощь моя была расположена в: C:\Users\username\AppData\Local\Yatta\Launcher\installations\eclipse-ide-for-java-developers\eclipse.exe

вот снимок экрана, как я устанавливаю настройки совместимости.

Eclipse.exe compatibility settings

и да, значки были очень маленькими, прежде чем регулировать эту настройку. Я попытался установить настройки совместимости на самой пусковой установке, но это, очевидно, не исправило проблему. Но после установки переопределения высокой настройки DPI для eclipse.значки exe теперь нормальный размер. Позвольте мне знать, если это работает для других!

следующее решение работало для меня

сначала вам нужно добавить этот раздел реестра

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

далее, файл манифеста с тем же именем, что и исполняемый файл, должен находиться в той же папке, что и исполняемый файл. Файл называется "затмение".исполняемый.манифест и состоит из:

<?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>

вы можете найти более подробную информацию здесь

спасибо, вздохнул Дэвид Леви. Я не мог развиваться на Eclipse без вашего sol'N. Мне пришлось добавить пару 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;*
                    }**

есть хорошая статья в JaxEnter для работы вокруг HiDPI для Eclipse

то, что сработало для меня в конце было добавление файла манифеста в javaw.exe так же, как сказал Хейкки Юнтунен в https://bugs.eclipse.org/bugs/show_bug.cgi?id=421383#c66

инструкции по редактированию реестра и созданию файла манифеста, где написано Matthew Cochrane at https://bugs.eclipse.org/bugs/show_bug.cgi?id=421383#c60 и @KItis написал инструкцию здесь

Я поставил здесь a копия этого сообщения:


сначала вам нужно добавить этот раздел реестра

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

далее, файл манифеста с тем же именем, что и исполняемый файл, должен находиться в той же папке, что и исполняемый файл. Файл называется "затмение".исполняемый.манифест и состоит из:

<?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>

вот мое решение, вдохновленное решением @Sigh (это не использует maven):

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

Это работает путем поиска всех изображений, меньших или равных 16x16px и масштабирования их по любому фактору, который хочет пользователь.

запуск утилиты: Ява изображений.EclipseIconEnlarger eclipseBasePath magnificaitonfactor

например: java изображения.EclipseIconEnlarger C:\Users\Amrit\Codes\eclipse 2

eclipseBasePath = путь, где затмение.exe находится, например C:\Users\Amrit\Codes\eclipse magnificationfactor = коэффициент, с помощью которого изображение должно быть увеличено, например 2 = double

вот еще одно решение командной строки, но это работает для Windows.

для этого требуется установить winrar (отредактируйте строку set winrar, чтобы указать на установку winrar).

для этого также требуется установить imagemagick и добавить его путь в вашу командную строку.

последний комментарий я рекомендую запустить это перед открытием Eclipse в первый раз (т. е. новая установка). Есть значки, которые автоматически распаковываются из банок и сохраняются в eclipse / configuration / org.eclips.osgi/... (потенциально среди других папок )и редактирование.jar-файл предотвращает изменение размера значка. Возможно, вы сможете удалить эту папку, и она может снова автоматически извлекаться, но я не могу подтвердить.

чтобы запустить, просто создайте дублер.bat-файл в вашем каталоге eclipse/plugins, и он должен изменить размер любого значка меньше 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

Он создает выходной файл.txt и вставляет все исходные метаданные изображений перед их преобразованием, независимо от того, изменился ли их размер.

если вы не хотите устанавливать более новую версию eclipse

как уже упоминалось здесь, в затмение.init добавить -Dswt.autoScale=exact после -vmargs и вы хорошо идти.

здесь exact масштабирует значки до собственного масштаба. Но вам придется настроить с размытыми и неровными значками.

У меня была эта проблема, когда я изменил свой язык Windows 10 по умолчанию с Eng на итальянский, причем Eclipse был установлен, когда язык по умолчанию был Eng. Возврат языка Windows к Eng и перезагрузка решили проблему. Я не знаю, что случилось, Windows переименовывает некоторые папки, такие как C:\Users перевод его на ваш язык по умолчанию (т. е. C:\Utenti) и, возможно, это вызывает проблемы.

ниже изменение работает без проблем.

цитирую CrazyPenguin ' s ответ

" для тех, кто, как и я, обнаружил, что даже на новом затмении он не был масштабирован, смотрите здесь:swt-autoscale-tweaks в основном я добавил -Dswt.автомасштабирование=четверть в моей затмение.ini-файл."

решение Jae выше работало для меня. Манифестное решение не сработало для меня. Спасибо, Джей.

Setup: на моем Windows 8.1 64 бит не планшетный ноутбук я загрузил eclipse 64 бит с JDK 64 бит.

  1. правая кнопка мыши на рабочем столе разрешение экрана и опустил разрешение экрана дисплея от 3000 уровня до 2048 х 1152.
  2. нажмите на ссылку сделать текст и другие элементы больше или меньше и сменил его на большие 150%, а не экстренно большие - 250%.
  3. вышел из системы и снова вошел в систему.
  4. перезапустить Eclipse и значки теперь видны, даже если это немного меньше, но теперь гораздо более разборчиво.