Menü-Symbol, Verwirrung - Sie sind zu groß!

Auf eine "normale" Größe Bildschirm hdpi-Gerät, ich verstehe, dass 72 x 72 Pixel-Grafiken verwendet werden sollten, und Sie sollten ansonsten Folgen Sie das Icon-Design Richtlinien (was einige der Plattform-Grafik-interessanterweise nicht tun). Wenn ich versuche, dies zu tun durch meine eigene neue Grafiken oder durch kopieren einer Grafik-Datei aus dem Android-SDK, aber die Grafik im Menü ist zu groß, und es zwingt die Beschriftung, D. H., der Titel, unter dem es erscheint nicht. Wenn ich "Kraft" die Verwendung einer 48 x 48 Pixel-Grafik, dann ist die Größe sieht gut aus und die Beschriftung Platz hat, um zu erscheinen, aber dies scheint nicht die richtige Lösung, da die Grafik-display-Qualität ist vermindert, und die Dokumentation klar sagt ein 72 x 72 Grak verwendet werden soll.

Verstehe ich die 9-patch-Grafiken verwendet werden sollten, um sicherzustellen, die richtige-auf der Suche Skalierung, aber keine Menü-Symbol Grafiken in die Plattform drawable Ordner angezeigt werden, tatsächlich werden 9-patch, wie Sie keine 9-patch-Marker. Für diese screenshots, ich habe noch 9-patch-Marker, um eine Kopie des Android SDK platform-10 72 x 72 hdpi ic_menu_share.png-Grafik. (Die draw9patch.Fledermaus-tool unerwartet verändert die Farben der Grafik.)

In den vier folgenden screenshots zeige ich neun Menü-Symbol zeigt, läuft auf meinem G2, und die auf einem emulator ausgeführt mit G2-Qualitäten: Android 2.2-API 8 WVGA800 240dpi. (Beide Geräte haben "normale" Größe hdpi-Bildschirme.) Da das Menü-Symbol Grafiken zeigen nur sechs in einer Zeit, gibt es zwei screenshots, die für jedes Gerät: v1 und v2. Die folgenden screenshots sind die code-Komponenten verwendet, generieren Sie diese Anwendung, zusammen mit einem link, um das komplette Projekt mit allen Grafik-Dateien, die ich verwendet.

Emulator_2.2_API8_WVGA800-240_v1:

Menü-Symbol, Verwirrung - Sie sind zu groß!

(Hinweis: Im obigen screenshot des emulators, das Symbol mit der Bezeichnung "G2-Plattform" sollte wohl stattdessen die Bezeichnung "Running Platform", da die angezeigte Grafik ist von der gerade Laufenden Android-Plattform - nicht von der G2-Plattform. Ich war nur zu faul, dies zu korrigieren.)

Emulator_2.2_API8_WVGA800-240_v2:

Menü-Symbol, Verwirrung - Sie sind zu groß!

G2_v1:

Menü-Symbol, Verwirrung - Sie sind zu groß!

G2_v2:

Menü-Symbol, Verwirrung - Sie sind zu groß!

(Bitte beachten ich sorgfältig befolgt das Icon-Design Richtlinien beim erstellen und kopieren dieser Grafiken.)

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="fubar.guiexamples"
    android:versionCode="1"
    android:versionName="1.0">
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="8" />
    <supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:anyDensity="true" />
    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name">
        <activity
            android:name=".MenuIconConfusion"
            android:label="@string/app_name">
            <intent-filter>
                <action
                    android:name="android.intent.action.MAIN" />
                <category
                    android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

MenuIconConfusion.java:

public class MenuIconConfusion extends Activity
{
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu)
  {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_options_menu, menu);
    return true;
  }
}

main_options_menu.xml v1:

<?xml version="1.0" encoding="utf-8"?>
<menu
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/g2_platform_with_title"
        android:icon="@android:drawable/ic_menu_share"
        android:title="G2 Platform" />
    <item
        android:id="@+id/g2_platform_no_title"
        android:icon="@android:drawable/ic_menu_share" />
    <item
        android:id="@+id/platform_10_auto_selection_with_title"
        android:icon="@drawable/ic_menu_share"
        android:title="Platform 10 Auto" />
    <item
        android:id="@+id/platform_10_auto_selection_no_title"
        android:icon="@drawable/ic_menu_share" />
    <item
        android:id="@+id/pixels_auto_selection"
        android:icon="@drawable/ic_menu_pixels"
        android:title="Pixels" />
</menu>

main_options_menu.xml v2:

<?xml version="1.0" encoding="utf-8"?>
<menu
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/platform_10_hdpi_72_with_title"
        android:icon="@drawable/ic_menu_share_p10_hdpi_72"
        android:title="Platform 10 72 Copy" />
    <item
        android:id="@+id/platform_10_hdpi_72_no_title"
        android:icon="@drawable/ic_menu_share_p10_hdpi_72" />
    <item
        android:id="@+id/platform_10_mdpi_48_with_title"
        android:icon="@drawable/ic_menu_share_p10_mdpi_48"
        android:title="Platform 10 48 Copy" />
    <item
        android:id="@+id/platform_10_hdpi_72_9_patch_with_title"
        android:icon="@drawable/ic_menu_share_p10_hdpi_72_nine_patch"
        android:title="Platform 10 72 9p Copy" />
    <item
        android:id="@+id/platform_10_hdpi_72_9_patch_no_title"
        android:icon="@drawable/ic_menu_share_p10_hdpi_72_nine_patch" />
    <item
        android:id="@+id/pixels_auto_selection"
        android:icon="@drawable/ic_menu_pixels"
        android:title="Pixels" />
</menu>

Einige Klarstellungen zu den Screenshots und Code:

Als ich für diese demo, ich verstehe, dass wir nicht sollen, verwenden Sie Grafiken aus android:drawable, aus den beschriebenen Gründen in das Menü-icon-design-Richtlinien.

Für einige icons, die ich angezeigt Sie jeweils zweimal - einmal mit einem Titel, sowie jeweils einmal ohne Titel - um zu sehen, ob ein Titel beeinflusst die Grafik ausgewählt wurde und ob die ausgewählte Grafik skaliert wurde.

Das Symbol mit der Bezeichnung "Plattform 10 48 Kopieren" ist eine 48 x 48 pixel-Grafik, kopiert aus dem Android SDK-Plattform 10 drawable-mdpi Ordner.

Den beiden helleren farbigen Symbole sind von den neun patch-Bild. Hinweis weisen Sie keine Skalierung der Merkmale.

Die "72" - Symbol enthalten war, zu zeigen, dass drawable-hdpi Ressourcen sind tatsächlich auto-ausgewählt von der Laufenden Plattform, wie erwartet. Waren die drawable-hdmi-Ressourcen, die stattdessen verwendet wird, dann wird die angezeigte Zahl "48".

MÖGLICHE FRAGEN:

Kurz gesagt, ich hatte nicht viel erwartet, der die Ergebnisse angezeigt, die in diesen screenshots. Während ich noch erwarten, dass die drawable-hdpi 72 x 72 Grafiken verwendet werden, ich habe auch erwartet, dass Sie die Anzeige mit genug Platz für den zugehörigen Titel. So...

Ich könnte Fragen, "Wie bekomme ich das Menü-icon-Grafiken skalieren, um Platz zu dislay die zugehörigen Titel?"

Ich vielleicht Fragen, "Was für eine Größe von Grafiken sind wir wirklich soll für Menü-icons, egal was die offizielle Dokumentation sagt?"

Ich vielleicht Fragen, "Was zum Teufel ist hier Los? Was verstehe ich nicht?"

Dem Android-Projekt-Dateien mit den Grafiken, die ich verwendet, heruntergeladen werden kann https://sites.google.com/site/androidguiexamples/home/downloads/MenuIconConfusion.zip

InformationsquelleAutor Thane Anthem | 2011-04-03
Schreibe einen Kommentar