2010-10-21 4 views
4

Je suis nouveau, de sorte que les liens et les images sont hereicônes locales dans stretch menu Options Android pour remplir élément de menu, obscur Titre

Salut,

Je fais probablement une erreur stupide ... espérant découvrir ce que c'est.

Je voudrais utiliser quelques-unes des icônes de menu standard (ic_menu_refresh, etc.) dans le menu Options de mon application. Et je voudrais définir les icônes dans le fichier XML pour le menu. Je lis dans quelques endroits que je peux utiliser les éléments suivants:

<item android:id="@+id/quit" 
     android:icon="@android:drawable/ic_menu_close_clear_cancel" 
     android:title="Quit" /> 

pour faire un bouton quitter dans mon menu. Et cela fonctionne bien. Cependant, je voudrais aussi utiliser d'autres icônes, comme ic_menu_stop.png, qui sont apparemment "non publiques" [link1]. En outre, j'ai lu dans quelques endroits que ce n'est pas une bonne idée de "référence des graphiques internes comme ça" [link2]. De même, je ne souhaite pas utiliser la solution astérisque [link3] pour autoriser l'accès à des ressources privées. La solution proposée consiste à faire une copie locale des drawables.

Je copié les fichiers d'image que je voulais partir C:\...\android-8\data\res\drawable-hdpi dans mon dossier de projet res\drawable, puis a changé le xml ci-dessus pour:

<item android:id="@+id/quit" 
     android:icon="@drawable/ic_menu_close_clear_cancel" 
     android:title="Quit" /> 

Cependant, cela provoque l'icône d'étirer (je crois que l'icône est étirée - et pas simplement un fichier image plus grand (hdpi) - parce qu'il est légèrement flou) et soit obscurcit ou évince le texte du titre, donc tout ce que je vois est l'icône floue et surdimensionnée. Bien sûr, j'ai également essayé de copier l'icône du dossier drawable-mdpi: l'utilisation de l'icône mdpi ne masque pas le titre, mais l'icône est légèrement sous-dimensionnée et floue.

Je voulais une capture d'écran, donc je suis passé à l'exécution de l'application sur mon émulateur. Cependant, le flou n'est pas apparente, et l'image mdpi locale semble correspondre à l'interne, je fais référence:

[capture d'écran] (! Cliquez sur le lien en haut)

J'ai deux -checked :), et c'est vraiment flou sur mon téléphone (Motorola Droid). Il m'est également apparu que le document référencé pourrait être l'icône via un fichier xml (comme une liste d'états dessinable), et que le fichier xml définissait en quelque sorte comment l'image devait être dessinée. J'ai essayé de faire un avec un élément bitmap, et essayé de placer deux des propriétés de manière je pensais peut aider:

<?xml version="1.0" encoding="utf-8"?> 
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
android:src="@drawable/ic_menu_close_clear_cancel" 
android:gravity="top" 
android:filter="false" /> 

Il a travaillé pour afficher l'icône (je suis fier de moi-même), mais n'a pas affecté le problème d'étirement.

J'ai également trouvé ces pages [link4 et link5], mais elles semblaient avoir des problèmes différents.

Peut-être que je devrais copier les icônes d'un autre emplacement? Suis-je sur la bonne voie avec le fichier xml? Aidez-moi?

Merci,

Nolan

+0

j'avais le EXACT même problème. Je n'ai pas encore trouvé de solution http://stackoverflow.com/questions/3982461/why-is-the-drawable-overlapping-the-text-in-my-tabview – Falmarri

Répondre

1

Si vous voulez avoir l'icône apparaissent correctement dans toutes les densités d'écran, vous devez créer votre propre drawable-mdpi, drawable-hdpi, dossiers etc et copier les icônes dans chacun de ceux-ci.

De cette façon, l'icône de taille correcte sera utilisée pour chaque densité. Pour plus de détails sur comment cela fonctionne, voir supporting multiple screen sizes, en particulier la section sur les qualificatifs de ressources.

+2

Cela ne répond pas vraiment à la question. Le drawable devrait s'étirer pour s'adapter – Falmarri

Questions connexes