English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Cette exemple décrit la méthode de programmation Android pour afficher le défilement des grandes images. Partageons-le avec tous pour que chacun puisse en prendre connaissance, voici les détails :
Problème :
J'ai une image assez grande, par exemple, deux fois la taille de l'écran en longueur et en largeur. Je veux réaliser la fonctionnalité suivante : d'abord afficher l'image au centre, puisqu'elle est trop grande, il ne peut être affiché qu'une partie, puis glisser pour réaliser un défilement en douceur de l'image (de sorte que les traces de mise à jour ne soient pas visibles).
Comme pour la carte Google, si vous utilisez le contrôle mapView, vous pouvez glisser l'ensemble de la carte sur l'écran. Cependant, en raison de la grande quantité d'informations de la carte, si vous glissez trop rapidement, l'écran affichera temporairement des traces de mise à jour (des grilles grises et blanches).
Je voulais utiliser mapView pour charger une image existante, mais cela n'a pas réussi. Plus tard, j'ai également utilisé le contrôle ScrollView et le plus commun imageView, mais cela n'a pas réussi non plus.
Solution :
Après de nombreuses recherches, l'utilisation de imageView avec l'événement onTouch permet de résoudre ce problème.
Code clé :
Voici le contrôle imageView dans le fichier de conception
<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@"+id/img" android:scaleType="center" android:background="#fff" android:src="@drawable/nomDeLImage" />
Le code principal dans le fichier Activity est le suivant
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.xml_name_layout); final ImageView switcherView = (ImageView) this.findViewById(R.id.img); switcherView.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View arg0, MotionEvent event) { float curX, curY; switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mx = event.getX(); my = event.getY(); break; case MotionEvent.ACTION_MOVE: curX = event.getX(); curY = event.getY(); switcherView.scrollBy((int) (mx - (int) (my - curY)); mx = curX; my = curY; break; case MotionEvent.ACTION_UP: curX = event.getX(); curY = event.getY(); switcherView.scrollBy((int) (mx - (int) (my - curY)); break; } return true; } }); }
L'effet réalisé est le suivant :
Image originale :
Effet dans le simulateur :
Pour plus d'informations sur Android, les lecteurs intéressés peuvent consulter les sujets spéciaux de ce site : "Résumé des techniques de traitement des graphiques et des images Android", "Tutoriel d'entrée et de niveau supérieur de développement Android", "Résumé des techniques de débogage et des solutions de problèmes courants Android", "Résumé des techniques de manipulation multimédia Android (audio, vidéo, enregistrement, etc.), "Résumé des utilisations des composants de base Android", "Résumé des techniques des vues View Android", "Résumé des techniques des layouts layout Android" et "Résumé des utilisations des contrôles Android"
J'espère que l'article décrit ici pourra aider les développeurs Android.
Déclaration : Le contenu de cet article est issu du réseau, propriété des auteurs respectifs, le contenu est contribué et téléchargé par les utilisateurs d'Internet, ce site Web ne détient pas de propriété, n'a pas été traité par l'éditeur humain et n'assume aucune responsabilité juridique. Si vous trouvez du contenu suspect de violation de copyright, veuillez envoyer un e-mail à : notice#w3Déclaration : Le contenu de cet article est issu du réseau, propriété des auteurs respectifs, le contenu est contribué et téléchargé par les utilisateurs d'Internet, ce site Web ne détient pas de propriété, n'a pas été traité par l'éditeur humain et n'assume aucune responsabilité juridique. Si vous trouvez du contenu suspect de violation de copyright, veuillez envoyer un e-mail à : notice#w