J'ai le code pour afficher les grandes images du tutoriel en ligne. Il fonctionne bien avec la version 1.5, mais lorsque j'utilise la bibliothèque Android 2.2, il ne fonctionne pas. (Mon application utilise la version 2.2) J'ai cherché les réponses à ce problème, mais sans succès. Je soupçonne que cela peut être quelque chose à voir avec le dossier drawable ? Les images se chargent, mais les actions telles que le zoom ou le déplacement de l'image ne peuvent être effectuées.
private void updateDisplay(){
calculateSourceRect(current_centerX, current_centerY, current_scale);
//where sourceRect = new RectF(); and destinationRect = new RectF();
matrix.setRectToRect(sourceRect, destinationRect, Matrix.ScaleToFit.FILL);
androidBigImageView.setImageMatrix(matrix);
}
private void calculateSourceRect(int centerX, int centerY, float scale){
int xSubValue;
int ySubValue;
if(destinationRect.bottom >= destinationRect.right){
ySubValue = (int)((imageSizeY/2) / scale);
xSubValue = ySubValue;
xSubValue = (int) (xSubValue * ((float)androidBigImageView.getWidth() / (float)androidBigImageView.getHeight()));
}
else{
xSubValue = (int)((imageSizeX/2) / scale);
ySubValue = xSubValue;
ySubValue = (int) (ySubValue * ((float)androidBigImageView.getHeight() / (float)androidBigImageView.getWidth()));
}
if(centerX - xSubValue < 0) {
animation.stopProcess();
centerX = xSubValue;
}
if(centerY - ySubValue < 0) {
animation.stopProcess();
centerY = ySubValue;
}
if(centerX + xSubValue >= imageSizeX) {
animation.stopProcess();
centerX = imageSizeX - xSubValue - 1;
}
if(centerY + ySubValue >= imageSizeY) {
animation.stopProcess();
centerY = imageSizeY - ySubValue - 1;
}
current_centerX = centerX;
current_centerY = centerY;
sourceRect.set(centerX - xSubValue, centerY - ySubValue, centerX + xSubValue, centerY + ySubValue);
}