2017-10-19 20 views
0

Je crée le bitmap de clone à partir de bitmap d'origine en natif. Et essayer de comparer 2 bitmap dans la couche java par api android.graphics.Bitmap.sameAs(), il faux retour dans Android O, mais retour vrai dans une autre version Android. D'ailleurs, j'essaie aussi de comparer config, les dimensions, les données de pixel par les API bitmap android dans O Android, tels que:android.graphics.Bitmap.sameAs dans android O pas de retour vrai lors de la comparaison 2 bitmaps mêmes configuration, dimensions, données de pixel

private boolean compareBitmap(Bitmap bitmap1, Bitmap bitmap2) 
{ 
    // Different types of image 
    if (bitmap1.getConfig() != bitmap2.getConfig()) 
     return false; 

    // Different sizes 
    if (bitmap1.getWidth() != bitmap2.getWidth()) 
     return false; 

    if (bitmap1.getHeight() != bitmap2.getHeight()) 
     return false; 

    int w = bitmap1.getWidth(); 
    int h = bitmap1.getHeight(); 

    int[] argbA = new int[w * h]; 
    int[] argbB = new int[w * h]; 

    bitmap1.getPixels(argbA, 0, w, 0, 0, w, h); 
    bitmap2.getPixels(argbB, 0, w, 0, 0, w, h); 

    // Alpha channel special check 
    if (bitmap1.getConfig() == Bitmap.Config.ALPHA_8) 
    { 
     final int length = w * h; 
     for (int i = 0; i < length; i++) 
     { 
      if ((argbA[i] & 0xFF000000) != (argbB[i] & 0xFF000000)) 
      { 
       return false; 
      } 
     } 
     return true; 
    } 

    return Arrays.equals(argbA, argbB); 
} 

La méthode compareBitmap() renvoient également vrai dans Android O. Alors, je ne sais pas pourquoi le android.graphics.Bitmap.sameAs() retourne faux dans ce cas, quand 2 bitmap ont la même config, dimensions, données de pixel?

Répondre

0

Revérifiez si le bitmap transmis n'est pas nul. S'il est nul, il renverra false. Sinon, je ne vois pas pourquoi je le retourne

+0

Je vérifie vraiment que bitmap n'est pas nul avant d'utiliser compareBitmap(). Comme vous le savez, bitmap.sameAs() renvoie FALSE dans Android O mais renvoie TRUE dans les anciennes versions d'Android – Eric