项目里面的用户头像要求是圆形的,所以自己重写了个ImageView控件,但是实际显示效果不是很好,图片边缘锯齿比较明显,网上看了一些抗锯齿的方法,都没有效果,哪位高手有比较好的解决方法,或者其它的圆形ImageView实现方式,分享下吧~~~谢啦import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PaintFlagsDrawFilter;
import android.graphics.Path;
import android.util.AttributeSet;
import android.widget.ImageView;public class RoundImageView extends ImageView { public RoundImageView(Context context) {
super(context);
}
public RoundImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public RoundImageView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
} @Override
protected void onDraw(Canvas canvas) {
Path clipPath = new Path();
int w = this.getWidth();
int h = this.getHeight();
clipPath.addCircle(w/2, h/2, w/2, Path.Direction.CW);
canvas.clipPath(clipPath);
canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
super.onDraw(canvas);
}
}
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PaintFlagsDrawFilter;
import android.graphics.Path;
import android.util.AttributeSet;
import android.widget.ImageView;public class RoundImageView extends ImageView { public RoundImageView(Context context) {
super(context);
}
public RoundImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public RoundImageView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
} @Override
protected void onDraw(Canvas canvas) {
Path clipPath = new Path();
int w = this.getWidth();
int h = this.getHeight();
clipPath.addCircle(w/2, h/2, w/2, Path.Direction.CW);
canvas.clipPath(clipPath);
canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
super.onDraw(canvas);
}
}
解决方案 »
- 怎样修改android.widget.ImageButton?????
- 如何root?
- 点击菜单没反应:Window already focused, ignoring focus gain of
- 怎么在A(程序)发送keyback事件给B
- Failed to parse the output of 'adb version'
- Test run failed: Test run failed to complete. Expected 1 tests, received 0
- android jni调用静态库
- 请教一个JNI报错问题
- android中listview的item有checkbox
- ragmentActivity嵌套多个Fragment,做底部和顶部选项菜单,请前辈帮给些思路!小弟先感谢了!
- android即时通讯类似微信那种
- 为什么我或取不到ContendProvider里联系人的号码?
2)mPaint.setFilterBitmap(true)。
文章链接
http://blog.csdn.net/sada09/article/details/8017248