10

Windows 8 では、トレイ アイコンが 20 x 20 ピクセルになるようです。Java はまだ 16 x 16 ピクセルであるべきだと考えているようです。これは、Java がスケールダウンし、Windows がスケールアップするため、悪い歪みを引き起こしています。次の例では、これらの 3 つの画像を使用して、次のような 3 つのトレイ アイコンを作成します (歪みに注意してください)。

20x20 の緑色のアイコン 20x20 の赤いアイコン 16x16 の青いアイコン

結果のトレイ.

import java.awt.Image;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;

public class TrayTest
{
    public static void main(String[] args) throws Exception
    {
        final SystemTray tray = SystemTray.getSystemTray();

        TrayIcon trayIcon16 = new TrayIcon(getImage("16pxBlue.png"));
        tray.add(trayIcon16);

        TrayIcon trayIcon20 = new TrayIcon(getImage("20pxRed.png"));
        tray.add(trayIcon20);

        TrayIcon trayIcon20autoSize = new TrayIcon(getImage("20pxGreen.png"));
        trayIcon20autoSize.setImageAutoSize(true);
        tray.add(trayIcon20autoSize);
    }

    public static Image getImage(String resource)
    {
        return Toolkit.getDefaultToolkit().createImage(TrayTest.class.getResource(resource));
    }
}

これは、ピクセル線を追加して拡大した全体の外観です (新しいタブで画像を開くと、より鮮明なビューが得られます)。

ここに画像の説明を入力

私の質問: Java / Windows 8 でアイコンが歪まないようにするにはどうすればよいですか?

4

2 に答える 2

0

単純に 2 のべき乗のアイコンを使用するだけの問題かもしれません - 16x16、32x32 など。ネイティブ OS (あなたの場合は Windows) はそれをサポートしていますが、Java はタスクバーのアイコンとプログラムのアイコンを 2 のべき乗で処理します。サイズの画像のみ。サイズを 32x32 に変更してから、もう一度お試しください。

于 2014-08-29T18:46:39.977 に答える