主要思想:
重写imageview,在imageview上画一个四个圆角的方框,并把画布下一一个圆角半径长度,这样就能不显示下面对的四个角

重写ImageView:

import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.graphics.RectF;import android.util.AttributeSet;import android.widget.ImageView;class RoundImageView extends ImageView {    public RoundImageView(Context context, AttributeSet attrs) {        super(context, attrs);        init();    }    public RoundImageView(Context context) {        super(context);        init();    }    private final RectF roundRect = new RectF();    private float rect_adius = 15;    private final Paint maskPaint = new Paint();    private final Paint zonePaint = new Paint();    private void init() {        maskPaint.setAntiAlias(true);        maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));        zonePaint.setAntiAlias(true);        zonePaint.setColor(Color.WHITE);        float density = getResources().getDisplayMetrics().density;        rect_adius = rect_adius * density;    }    public void setRectAdius(float adius) {        rect_adius = adius;        invalidate();    }    @Override    protected void onLayout(boolean changed, int left, int top, int right,                            int bottom) {        super.onLayout(changed, left, top, right, bottom);        int w = getWidth();        int h = getHeight();        roundRect.set(0, 0, w, h + rect_adius);//画布下移半径长度    }    @Override    public void draw(Canvas canvas) {        canvas.saveLayer(roundRect, zonePaint, Canvas.ALL_SAVE_FLAG);        canvas.drawRoundRect(roundRect, rect_adius, rect_adius, zonePaint);        canvas.saveLayer(roundRect, maskPaint, Canvas.ALL_SAVE_FLAG);        super.draw(canvas);        canvas.restore();    }}

注:该类可以直接在xml中调用,和imageView用法一样,不过圆角半径要动态在代码中设置,调用该对象的setRectAdius(adius)方法

更多相关文章

  1. Android:使用Canvas合并Bitmap
  2. Android会根据内容自动变色的TextView
  3. android 在listview上的 gallery 禁止上下滑动
  4. android canvas d
  5. android WebViewClient和WebChromeClient
  6. android之List的空指针问题_List的初始化
  7. Android(安卓)WebView 禁止输入
  8. android虚席总结(16.08.26)Activity的生命周期
  9. 疯狂android讲义---Configuration

随机推荐

  1. Android(安卓)SDK下载
  2. Android调试笔记——Installation error
  3. android进度对话框的使用
  4. 2.5.6 使用progressDialog创建进度对话框
  5. Android(安卓)com.android.support 版本
  6. Android第二十六课 调试模式 file.exits
  7. android一些不常用的事件
  8. android自定义title
  9. Android(安卓)ndk-stack tool
  10. Android(安卓)网络链接,不要忘记添加网络