diff options
19 files changed, 36 insertions, 6 deletions
diff --git a/res/drawable-hdpi/chip_background.9.png b/res/drawable-hdpi/chip_background.9.png Binary files differindex 3988da5..3d6d27d 100644 --- a/res/drawable-hdpi/chip_background.9.png +++ b/res/drawable-hdpi/chip_background.9.png diff --git a/res/drawable-hdpi/chip_background_invalid.9.png b/res/drawable-hdpi/chip_background_invalid.9.png Binary files differindex 01a3d95..204a3c0 100644 --- a/res/drawable-hdpi/chip_background_invalid.9.png +++ b/res/drawable-hdpi/chip_background_invalid.9.png diff --git a/res/drawable-hdpi/chip_background_selected.9.png b/res/drawable-hdpi/chip_background_selected.9.png Binary files differindex e05657f..1d9b5ee 100644 --- a/res/drawable-hdpi/chip_background_selected.9.png +++ b/res/drawable-hdpi/chip_background_selected.9.png diff --git a/res/drawable-hdpi/chip_delete.png b/res/drawable-hdpi/chip_delete.png Binary files differindex 75cde4a..feccc69 100644 --- a/res/drawable-hdpi/chip_delete.png +++ b/res/drawable-hdpi/chip_delete.png diff --git a/res/drawable-mdpi/chip_background.9.png b/res/drawable-mdpi/chip_background.9.png Binary files differindex 99fd037..116f731 100644 --- a/res/drawable-mdpi/chip_background.9.png +++ b/res/drawable-mdpi/chip_background.9.png diff --git a/res/drawable-mdpi/chip_background_invalid.9.png b/res/drawable-mdpi/chip_background_invalid.9.png Binary files differindex f90bec5..ad349bf 100644 --- a/res/drawable-mdpi/chip_background_invalid.9.png +++ b/res/drawable-mdpi/chip_background_invalid.9.png diff --git a/res/drawable-mdpi/chip_background_selected.9.png b/res/drawable-mdpi/chip_background_selected.9.png Binary files differindex 308fa03..ceda86e 100644 --- a/res/drawable-mdpi/chip_background_selected.9.png +++ b/res/drawable-mdpi/chip_background_selected.9.png diff --git a/res/drawable-mdpi/chip_delete.png b/res/drawable-mdpi/chip_delete.png Binary files differindex 75cde4a..294db89 100644 --- a/res/drawable-mdpi/chip_delete.png +++ b/res/drawable-mdpi/chip_delete.png diff --git a/res/drawable-xhdpi/chip_background.9.png b/res/drawable-xhdpi/chip_background.9.png Binary files differindex 72b0f22..4fe3fe4 100644 --- a/res/drawable-xhdpi/chip_background.9.png +++ b/res/drawable-xhdpi/chip_background.9.png diff --git a/res/drawable-xhdpi/chip_background_invalid.9.png b/res/drawable-xhdpi/chip_background_invalid.9.png Binary files differindex a9195ea..be64165 100644 --- a/res/drawable-xhdpi/chip_background_invalid.9.png +++ b/res/drawable-xhdpi/chip_background_invalid.9.png diff --git a/res/drawable-xhdpi/chip_background_selected.9.png b/res/drawable-xhdpi/chip_background_selected.9.png Binary files differindex abed86a..37400f3 100644 --- a/res/drawable-xhdpi/chip_background_selected.9.png +++ b/res/drawable-xhdpi/chip_background_selected.9.png diff --git a/res/drawable-xhdpi/chip_delete.png b/res/drawable-xhdpi/chip_delete.png Binary files differnew file mode 100644 index 0000000..bed6d67 --- /dev/null +++ b/res/drawable-xhdpi/chip_delete.png diff --git a/res/drawable-xxhdpi/chip_background.9.png b/res/drawable-xxhdpi/chip_background.9.png Binary files differnew file mode 100644 index 0000000..d8fff51 --- /dev/null +++ b/res/drawable-xxhdpi/chip_background.9.png diff --git a/res/drawable-xxhdpi/chip_background_invalid.9.png b/res/drawable-xxhdpi/chip_background_invalid.9.png Binary files differnew file mode 100644 index 0000000..4ae403e --- /dev/null +++ b/res/drawable-xxhdpi/chip_background_invalid.9.png diff --git a/res/drawable-xxhdpi/chip_background_selected.9.png b/res/drawable-xxhdpi/chip_background_selected.9.png Binary files differnew file mode 100644 index 0000000..4e0f00e --- /dev/null +++ b/res/drawable-xxhdpi/chip_background_selected.9.png diff --git a/res/drawable-xxhdpi/chip_delete.png b/res/drawable-xxhdpi/chip_delete.png Binary files differnew file mode 100644 index 0000000..f6d3196 --- /dev/null +++ b/res/drawable-xxhdpi/chip_delete.png diff --git a/res/drawable-xxhdpi/ic_contact_picture.png b/res/drawable-xxhdpi/ic_contact_picture.png Binary files differnew file mode 100644 index 0000000..05a65f6 --- /dev/null +++ b/res/drawable-xxhdpi/ic_contact_picture.png diff --git a/res/values/dimen.xml b/res/values/dimen.xml index f989c86..0304e1f 100644 --- a/res/values/dimen.xml +++ b/res/values/dimen.xml @@ -15,8 +15,8 @@ --> <resources> - <dimen name="chip_padding">8dip</dimen> - <dimen name="chip_height">32dip</dimen> + <dimen name="chip_padding">3dip</dimen> + <dimen name="chip_height">36dip</dimen> <dimen name="chip_text_size">14sp</dimen> <dimen name="line_spacing_extra">4dip</dimen> <integer name="chips_max_lines">-1</integer> diff --git a/src/com/android/ex/chips/RecipientEditTextView.java b/src/com/android/ex/chips/RecipientEditTextView.java index 2a5405e..cd999d9 100644 --- a/src/com/android/ex/chips/RecipientEditTextView.java +++ b/src/com/android/ex/chips/RecipientEditTextView.java @@ -28,12 +28,16 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.graphics.BitmapShader; import android.graphics.Canvas; +import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; +import android.graphics.Paint.Style; import android.graphics.Point; import android.graphics.Rect; import android.graphics.RectF; +import android.graphics.Shader.TileMode; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.AsyncTask; @@ -827,9 +831,33 @@ public class RecipientEditTextView extends MultiAutoCompleteTextView implements * rectangle of the canvas. */ protected void drawIconOnCanvas(Bitmap icon, Canvas canvas, Paint paint, RectF src, RectF dst) { - Matrix matrix = new Matrix(); + final Matrix matrix = new Matrix(); + + // Draw bitmap through shader first. + final BitmapShader shader = new BitmapShader(icon, TileMode.CLAMP, TileMode.CLAMP); + matrix.reset(); + + // Fit bitmap to bounds. matrix.setRectToRect(src, dst, Matrix.ScaleToFit.FILL); - canvas.drawBitmap(icon, matrix, paint); + + shader.setLocalMatrix(matrix); + paint.reset(); + paint.setShader(shader); + paint.setAntiAlias(true); + paint.setFilterBitmap(true); + paint.setDither(true); + canvas.drawCircle(dst.centerX(), dst.centerY(), dst.width() / 2f, paint); + + // Then draw the border. + final float borderWidth = 1f; + paint.reset(); + paint.setColor(Color.TRANSPARENT); + paint.setStyle(Style.STROKE); + paint.setStrokeWidth(borderWidth); + paint.setAntiAlias(true); + canvas.drawCircle(dst.centerX(), dst.centerY(), dst.width() / 2f - borderWidth / 2, paint); + + paint.reset(); } private DrawableRecipientChip constructChipSpan(RecipientEntry contact, boolean pressed) @@ -936,8 +964,10 @@ public class RecipientEditTextView extends MultiAutoCompleteTextView implements if (mInvalidChipBackground == null) { mInvalidChipBackground = r.getDrawable(R.drawable.chip_background_invalid); } - mAvatarPosition = a.getInt(R.styleable.RecipientEditTextView_avatarPosition, 0); - mImageSpanAlignment = a.getInt(R.styleable.RecipientEditTextView_imageSpanAlignment, 0); + mAvatarPosition = + a.getInt(R.styleable.RecipientEditTextView_avatarPosition, AVATAR_POSITION_START); + mImageSpanAlignment = a.getInt(R.styleable.RecipientEditTextView_imageSpanAlignment, + IMAGE_SPAN_ALIGNMENT_BASELINE); mDisableDelete = a.getBoolean(R.styleable.RecipientEditTextView_disableDelete, false); mLineSpacingExtra = r.getDimension(R.dimen.line_spacing_extra); |
