2 votes

L'application développée pour 1.5 ne fonctionne pas sur Android 2.2

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);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X