Anti alias and filter image assets (#140)
diff --git a/LottieSample/screenshots/Tests_Image 10.png b/LottieSample/screenshots/Tests_Image 10.png
index 4e07350..be8cc41 100644
--- a/LottieSample/screenshots/Tests_Image 10.png
+++ b/LottieSample/screenshots/Tests_Image 10.png
Binary files differ
diff --git a/LottieSample/screenshots/Tests_Image 100.png b/LottieSample/screenshots/Tests_Image 100.png
index aa134a5..151742e 100644
--- a/LottieSample/screenshots/Tests_Image 100.png
+++ b/LottieSample/screenshots/Tests_Image 100.png
Binary files differ
diff --git a/LottieSample/screenshots/Tests_Image 20.png b/LottieSample/screenshots/Tests_Image 20.png
index 2b1347f..503f8cf 100644
--- a/LottieSample/screenshots/Tests_Image 20.png
+++ b/LottieSample/screenshots/Tests_Image 20.png
Binary files differ
diff --git a/LottieSample/screenshots/Tests_Image 5.png b/LottieSample/screenshots/Tests_Image 5.png
index 20c678b..112fb6c 100644
--- a/LottieSample/screenshots/Tests_Image 5.png
+++ b/LottieSample/screenshots/Tests_Image 5.png
Binary files differ
diff --git a/LottieSample/screenshots/Tests_Image 50.png b/LottieSample/screenshots/Tests_Image 50.png
index ebfdefb..e1bb927 100644
--- a/LottieSample/screenshots/Tests_Image 50.png
+++ b/LottieSample/screenshots/Tests_Image 50.png
Binary files differ
diff --git a/lottie/src/main/java/com/airbnb/lottie/LayerView.java b/lottie/src/main/java/com/airbnb/lottie/LayerView.java
index e2b7c90..91aa0b8 100644
--- a/lottie/src/main/java/com/airbnb/lottie/LayerView.java
+++ b/lottie/src/main/java/com/airbnb/lottie/LayerView.java
@@ -28,6 +28,8 @@
private final Paint mainCanvasPaint = new Paint();
private final Paint mattePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private final Paint maskPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ private final Paint imagePaint =
+ new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
private final Layer layerModel;
private final LottieComposition composition;
@@ -256,7 +258,7 @@
LayerView layer = transformLayers.get(i);
applyTransformForLayer(canvas, layer);
}
- drawBitmapIfNeeded(canvas);
+ drawImageIfNeeded(canvas);
super.draw(canvas);
canvas.restoreToCount(mainCanvasCount);
return;
@@ -268,7 +270,7 @@
// Now apply the parent transformations from the top down.
bitmapCanvas.save();
- drawBitmapIfNeeded(bitmapCanvas);
+ drawImageIfNeeded(bitmapCanvas);
for (int i = transformLayers.size() - 1; i >= 0; i--) {
LayerView layer = transformLayers.get(i);
applyTransformForLayer(bitmapCanvas, layer);
@@ -319,19 +321,19 @@
canvas.restore();
}
- private void drawBitmapIfNeeded(Canvas canvas) {
+ private void drawImageIfNeeded(Canvas canvas) {
if (!composition.hasImages()) {
return;
}
String refId = layerModel.getRefId();
- Bitmap bitmap = getLottieDrawable().getImageBitmap(refId);
+ Bitmap bitmap = getLottieDrawable().getImageAsset(refId);
if (bitmap == null) {
return;
}
canvas.save();
applyTransformForLayer(canvas, this);
- canvas.drawBitmap(bitmap, 0, 0 ,null);
+ canvas.drawBitmap(bitmap, 0, 0 ,imagePaint);
canvas.restore();
}
diff --git a/lottie/src/main/java/com/airbnb/lottie/LottieDrawable.java b/lottie/src/main/java/com/airbnb/lottie/LottieDrawable.java
index 6accba0..0fd9549 100644
--- a/lottie/src/main/java/com/airbnb/lottie/LottieDrawable.java
+++ b/lottie/src/main/java/com/airbnb/lottie/LottieDrawable.java
@@ -266,7 +266,7 @@
return composition == null ? -1 : composition.getBounds().height();
}
- Bitmap getImageBitmap(String id) {
+ Bitmap getImageAsset(String id) {
return getImageAssetBitmapManager().bitmapForId(id);
}