Utiliser des sprites d'image sur Android
J'ai une image (588x449) sprite avec une collection de différents logos d'équipe. Dans Android, j'ai le correspondant ImageView l'affichage de ce:
<ImageView android:id="@+id/image_team_logo"
android:src="@drawable/teamheaderssprite"
android:layout_height="25dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:layout_width="296dp" android:scaleType="matrix"/>
Ci-dessus affiche correctement le morceau de mon image dans le coin supérieur gauche. Mon problème est que je veux être en mesure de déplacer la position dans l'image affichée afin que je puisse passer à une autre zone dans le sprite. C'est assez courant en html/css, je suis tout simplement pas voir une "position" type de propriété dans android xml.
source d'informationauteur mattyp
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser des sprites de la même manière sur Android, vous pouvez le faire avec HTML. Il ya une façon que je peux penser à simuler des sprites: posez le sprite entièrement à l'horizontale (ou verticale), puis d'utiliser un ClipDrawable pour définir chaque niveau en tant que nouvelle partie du sprite. Ensuite, de définir le niveau de chaque point de Vue approprié. (Si l'image dans le sprite ne sont pas toutes de la même taille, vous devrez peut-être utiliser InsetDrawable.)
Cependant, je tiens à repenser sérieusement à l'aide de sprites dans Android. Il y a des raisons pourquoi les pages web à utiliser des sprites, et ce n'est pas parce qu'ils sont plus faciles c'est parce qu'il accélère les pages web parce que vous n'avez pas à faire plusieurs requêtes HTTP. Étant donné que les images seront déjà dans votre version APK, vous n'avez pas gagner quoi que ce soit par spriting.
Non seulement cela, mais vous êtes en train de faire du tort par spriting sur Android:
Contraintes de mémoire sur certains téléphones Android sont beaucoup plus bas que vous pourriez vous attendre. Si la totalité de vos graphiques sont en mémoire à un moment donné, qui diminue la quantité de mémoire que vous avez pour tout le reste.
Sprites seront plus difficiles à manipuler une fois que vous commencer à écrire pour différents écran densités (ldpi, mdpi, hdpi).