KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am new to android dev, and I have been trying for a few hours now to add nice and smooth rounded corners to an ImageView, without success. First thing I tried is simply to round corners of my images directly, but this implies changing the bitmap, and since I need to keep the raw ones, and those are pretty big, this is not really memory friendly. This would also cause other difficulties since my ImageView is fluid. Second thing I tried to use is the clipPath method after subclassing my view. This works, but corners are aliased. I then tried adding a PaintFlagsDrawFilter to implement the aliasing, but this didn't worked. I'm using monodroid, and I was wondering this was supposed to work in Java. Here is my code (C#): public class MyImageView : ImageView { private float[] roundedCorner; /** * Contains the rounded corners for the view. * You can define one, four or height values. * This behaves as the css border-radius property * * @see http://developer.android.com/reference/android/graphics/Path.html#addRoundRect(android.graphics.RectF, float[], android.graphics.Path.Direction) */ public float[] RoundedCorners{ get{ return roundedCorner; } set{ float[] finalValue = new float[8]; int i=0; if(value.Length == 1){ for(i=0; i<8;i++){ finalValue[i] = value[0]; } }else if(value.Length == 4){ for(i=0; i<4;i++){ finalValue[2*i] = value[i]; finalValue[2*i+1] = value[i]; } } roundedCorner = finalValue; } } public SquareImageView (Context context) : base (context) { Initialize (); } public SquareImageView (Context context, IAttributeSet attrs) : base (context, attrs) { Initialize (); }
Tags (comma-separated)
Save Edits
Cancel