Arrière-plan réel la taille de l'image dans android (avec la barre de statut)
Je voudrais utiliser un haut niveau de détail de l'image comme backrgound dans mon application, et j'ai un problème avec mon concepteur de ce fait 😀
Maintenant, nous avons trois tailles d'image (un par densité) selon la plupart des communes périphériques de la taille de l'écran, comme nous le savons:
- faible: 240 x 320 (e. HTC Tattoo)
- mi:320 x 480 (e. HTC Magic)
- haut: 480 x 800 (e. Nexus One)
Le problème est que, lorsque j'ai mis une image comme arrière-plan, il est redimensionnée, et je peux voir à plusieurs horizontale "fantôme" lignes sur elle.
Nous avons donc décidé de redimensionner les images avec "hauteur-moins-la barre d'état de la hauteur" (uniquement en haute densité, juste comme test), d'avoir enfin un 480 + 752 px (selon http://developer.android.com/guide/practices/ui_guidelines/icon_design.html , la barre d'état, la hauteur est de 48 px)
Mais il montre encore ces "fantômes" des lignes, nous pensons donc qu'il est en train d'être réduite à nouveau...
Quelqu'un pourrait-il m'aider? Je veux juste une base normale, sans redimensionnement, mais je ne sais pas les dimensions réelles...
Merci 😀
OriginalL'auteur Aitor Gómez | 2010-12-03
Vous devez vous connecter pour publier un commentaire.
Que vous vous exposez à être dans un perpétuel état de douleur. Vous ne pouvez tout simplement pas à l'encontre de la conception exacte de résolutions; il y a trop de variation dans les appareils de qui, et ce faisant, vous allez être giflé au visage continuellement à mesure que vous les rencontrez de nouveaux appareils. Android a beaucoup de facilités pour faire face à cet écran d'options, comme le 9-patch, sa densité, de la gestion, de la disposition des gestionnaires, etc. Si vous profitez de ceux-ci, vous serez heureux; et si vous ne le faites pas, vous serez en jurant de tous les temps.
Mais si vous voulez vous jure, je ne peux pas vous arrêter. Juste s'il vous plaît ne prenez pas le net se plaindre de la fragmentation d'Android. 🙂
Aussi loin que votre image redimensionnée en raison de la barre d'état -- oui la barre d'état prend un morceau de l'écran. Combien n'est pas défini, donc il pourrait bien varier légèrement entre les appareils. Le fond de la fenêtre, comme indiqué par l'Activité.getWindow().setBackgroundDrawable(), va s'étendre derrière la barre d'état (et d'IME ou d'une autre variable système décoration), donc au moins de l'aide qui permettra de réduire l'écart. Cela dit, l'affichage réel de l'espace pourrait être taillé pour d'autres raisons, à partir de la physique de la taille de l'écran; il intentionnellement n'est pas défini exactement quelle partie de l'écran d'une application de jeu.
OriginalL'auteur hackbod
De ne pas oublier le Droid A855 (résolution de 480x854), ou la Galaxy Tab (1024 x 600) ou de nombreuses autres résolutions. Votre meilleur pari, si vous en avez besoin pixel-perfect, est de faire une image de la taille de la plus grande résolution dans sa catégorie (c'est à dire 480x854 pour une de taille normale, hdpi écran) et
suffit de le définir comme une ImageView, avec un scaleType de centerCrop.Sur la deuxième pensée, une ImageView (si vous utilisez android:attribut background), mais elle est inutile. Vous pouvez tout simplement mis le NinePatch arrière-plan, comme l'attribut background de la racine de votre mise en page (p. ex. RelativeLayout, LinearLayout). Si le NinePatch est correctement mis en forme, le fond sera centré, et l'image s'étirer pour s'adapter à l'espace restant sans distorsion. Sur un Nexus One, vous seriez de couper le haut et le bas 27 pixels de l'image, mais il ne serait pas être redimensionnée.Une meilleure suggestion, selon le type d'image qu'il est, serait à faire partie d'un NinePatch. Par exemple, si il a une petite bordure ou un cadre sur les bords, faire de la principale partie de l'arrière-plan de plus petite taille (430 x 750?), et faire les bords extérieurs du cadre extensible via NinePatch. De cette façon, même si il y a un nouvel appareil avec une résolution légèrement différente, il sera toujours à l'échelle pour s'adapter correctement, sans s'étirer.
Vous êtes les bienvenus si ça peut aider! Mais si vous avez une vilaine résultat à partir d'une hypertrophie de la NinePatch, il ya quelque chose de mal avec l'NinePatch, ou la mise en œuvre. Le point de NinePatch est qu'il est adaptable à n'importe quelle taille sans distorsion. C'est mieux avec Android pour simplement éviter de penser à votre application aura jamais d'une résolution spécifique et juste travailler avec une relative de dimensionnement et de positionnement. Une chose qui pourrait être la cause de votre NinePatch problème est que si vous êtes à la définir comme une ImageView de l'attribut src. Vous devez utiliser l'attribut background. Je vais préciser que dans ma réponse.
Salut à nouveau 😀 Le problème principal est que l'image n'est pas redimensionnables en raison de ses détails... parce que j'ai utilisé plusieurs ninePatch images avant 😀 (toujours en toile de fond, c'est la seule façon de travailler). Je pense à la fin de mon designer partenaire va me détester, mais je vais demander pour les nouveaux scallable origines . Merci encore 🙂
Salut à nouveau. 😛 Vous ne pouvez vraiment utiliser NinePatches à l'extérieur de juste un fond uni. Si vous avez un cadre extérieur, vous avez juste à placer un point au sommet des deux côtés du contenu (un pour chaque côté de l'image) et faire de même pour le bord gauche. Quand je rentre à la maison, je peux travailler jusqu'à un exemple pour vous si vous le souhaitez.
OriginalL'auteur kcoppock
Je recherchais une solution sur l'arrière-plan derrière la barre d'état lorsque vous utilisez la méthode suivante: http://developer.android.com/resources/articles/window-bg-speed.html
Maintenant j'ai juste utilisé un arbitraire de l'espace en haut de la bg graphique pour compenser la barre d'état.
J'ai aussi remarqué le baguage et je ne pense pas que c'est parce que c'est redimensionnée. Cet article fixe le problème sur mon Nexus S:
http://stuffthathappens.com/blog/2010/06/04/android-color-banding/ (références aussi le développeur.android article lié ci-dessus)
OriginalL'auteur amcc