* 31230: lighten bitmap processing
diff --git a/src/org/sflphone/adapters/ContactPictureTask.java b/src/org/sflphone/adapters/ContactPictureTask.java
index 992a2ea..70c33e9 100644
--- a/src/org/sflphone/adapters/ContactPictureTask.java
+++ b/src/org/sflphone/adapters/ContactPictureTask.java
@@ -33,25 +33,25 @@
import java.io.InputStream;
+import org.sflphone.R;
+
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
-import android.graphics.BitmapFactory.Options;
+import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
-import android.graphics.Path;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.RectF;
+import android.graphics.Shader;
import android.net.Uri;
import android.provider.ContactsContract;
import android.widget.ImageView;
-import org.sflphone.R;
-
public class ContactPictureTask implements Runnable {
private ImageView view;
private long cid;
@@ -95,23 +95,15 @@
}
final Bitmap externalBMP = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
-
- int radius = externalBMP.getWidth() / 2;
- Path path = new Path();
-
- path.addCircle(radius, radius, radius, Path.Direction.CW);
- Paint mPaintPath = new Paint(Paint.ANTI_ALIAS_FLAG);
- mPaintPath.setStyle(Paint.Style.FILL);
- mPaintPath.setAntiAlias(true);
- Bitmap circle = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
- Canvas circle_drawer = new Canvas(circle);
- circle_drawer.drawOval(new RectF(0, 0, w, h), mPaintPath);
- mPaintPath.setFilterBitmap(false);
-
+
+ BitmapShader shader;
+ shader = new BitmapShader(photo_bmp, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
+
+ Paint paint = new Paint();
+ paint.setAntiAlias(true);
+ paint.setShader(shader);
Canvas internalCanvas = new Canvas(externalBMP);
- internalCanvas.drawBitmap(photo_bmp, 0, 0, mPaintPath);
- mPaintPath.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
- internalCanvas.drawBitmap(circle, 0, 0, mPaintPath);
+ internalCanvas.drawOval(new RectF(0, 0, w, h), paint);
view.post(new Runnable() {
@Override