浏览代码

ui:preview Refactored image rendering. Show checkerboard with svg's as well.

eho 7 年之前
父节点
当前提交
a26f3b6b44
共有 1 个文件被更改,包括 19 次插入13 次删除
  1. 19 13
      src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.java

+ 19 - 13
src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.java

@@ -651,22 +651,14 @@ public class PreviewImageFragment extends FileFragment {
                             bitmap.getHeight());
                             bitmap.getHeight());
                 }
                 }
 
 
-                if (result.ocFile.getMimetype().equalsIgnoreCase("image/png")) {
+                if (result.ocFile.getMimetype().equalsIgnoreCase("image/png") ||
+                        result.ocFile.getMimetype().equalsIgnoreCase("image/svg+xml") ||
+                        result.ocFile.getMimetype().equalsIgnoreCase("image/gif")) {
                     if (getResources() != null) {
                     if (getResources() != null) {
                         imageView.setImageDrawable(generateCheckerboardLayeredDrawable(result, bitmap));
                         imageView.setImageDrawable(generateCheckerboardLayeredDrawable(result, bitmap));
                     } else {
                     } else {
                         imageView.setImageBitmap(bitmap);
                         imageView.setImageBitmap(bitmap);
                     }
                     }
-                } else if (result.ocFile.getMimetype().equalsIgnoreCase("image/svg+xml")) {
-                    imageView.setImageDrawable(result.drawable);
-                } else if (result.ocFile.getMimetype().equalsIgnoreCase("image/gif")) {
-                    GifDrawable gif;
-                    try {
-                        gif = new GifDrawable(result.ocFile.getStoragePath());
-                        imageView.setImageDrawable(gif);
-                    } catch (IOException ex) {
-                        imageView.setImageDrawable(result.drawable);
-                    }
                 } else {
                 } else {
                     imageView.setImageBitmap(bitmap);
                     imageView.setImageBitmap(bitmap);
                 }
                 }
@@ -684,12 +676,26 @@ public class PreviewImageFragment extends FileFragment {
         }
         }
     }
     }
 
 
-    private LayerDrawable generateCheckerboardLayeredDrawable (LoadImage result, Bitmap bitmap) {
+    private LayerDrawable generateCheckerboardLayeredDrawable(LoadImage result, Bitmap bitmap) {
         Resources r = getResources();
         Resources r = getResources();
         Drawable[] layers = new Drawable[2];
         Drawable[] layers = new Drawable[2];
         layers[0] = r.getDrawable(R.color.white);
         layers[0] = r.getDrawable(R.color.white);
         Drawable bitmapDrawable;
         Drawable bitmapDrawable;
-        bitmapDrawable = new BitmapDrawable(getResources(), bitmap);
+
+        if (result.ocFile.getMimetype().equalsIgnoreCase("image/png")) {
+            bitmapDrawable = new BitmapDrawable(getResources(), bitmap);
+        } else if (result.ocFile.getMimetype().equalsIgnoreCase("image/svg+xml")) {
+            bitmapDrawable = result.drawable;
+        } else if (result.ocFile.getMimetype().equalsIgnoreCase("image/gif")) {
+            try {
+                bitmapDrawable = new GifDrawable(result.ocFile.getStoragePath());
+            } catch (IOException exception) {
+                bitmapDrawable = result.drawable;
+            }
+        } else {
+            bitmapDrawable = new BitmapDrawable(getResources(), bitmap);
+        }
+
         layers[1] = bitmapDrawable;
         layers[1] = bitmapDrawable;
         LayerDrawable layerDrawable = new LayerDrawable(layers);
         LayerDrawable layerDrawable = new LayerDrawable(layers);