`
闫老三
  • 浏览: 100164 次
社区版块
存档分类
最新评论

android 用canvas.clipPath 画不规则的Bitmap

 
阅读更多
 
转载请注明出处:http://www.bangchui.org/read.php?tid=10646

通过使用canvas.clipPath,可以将一个规则的位图裁剪为不规则的位图

一个矩形的图,一般画出来是这样子的:


我们需要画成这个样子:


通过canvas.clipPath(path);方法可以达到这个效果,看代码:
package org.bangchui;
 
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Path;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
 
public class MyView extends View {
    private Drawable mDrawable;
 
    public MyView(Context context) {
        super(context);
        init();
    }
 
    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }
 
    public MyView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }
 
    private void init() {
        mDrawable = getResources().getDrawable(R.drawable.testpath);
         
    }
 
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
         
        Path path = new Path();
        path.moveTo(0, 0);
        path.lineTo(300, 0);
         
        path.lineTo(300, 150);
         
        path.lineTo(150, 300);
         
        path.lineTo(0, 300);
         
        path.lineTo(0, 0);
         
        canvas.clipPath(path);
         
         
        mDrawable.setBounds(0, 0, getWidth(), getHeight());
        mDrawable.draw(canvas);
         
    }
     
     
 
}
 本文地址:http://bajiewuneng.iteye.com/blog/1918148
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics