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

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
分享到:
评论

相关推荐

    android图形操作

    #### Canvas.clipPath:裁剪不规则Bitmap 在Android开发过程中,经常会遇到需要处理图像的需求,其中一个常见的应用场景就是将规则形状的图像裁剪成不规则形状。这不仅可以增强应用的视觉效果,还能在特定场景下...

    android头像截取

    我们可以使用Bitmap.createBitmap方法,传入源Bitmap、目标宽度和高度(两者相等即可),再通过Canvas的drawBitmap方法将源Bitmap绘制到新的正方形Bitmap上。为了保持头像比例,可以先计算出源Bitmap的宽高比,然后...

    不规则剪切图片

    在Android开发中,"不规则剪切图片"是一项常见的需求,尤其在个性化应用或编辑类应用中。这个任务涉及到从网络获取图片、将其转化为Bitmap对象,以及实现自定义的ImageView来实现自由剪切效果。接下来,我们将深入...

    Android图片合成相框合成

    例如,你可以使用`clipPath()`配合Path类来指定一个不规则的形状,只有在这个区域内绘制的图像才会显示出来。 不规则相框合成则是将图片放入一个具有特殊形状的相框内,使得图片边缘适应相框形状。这需要先创建一个...

    Android自定义AvatarImageView实现头像显示效果

    这对于实现不规则形状的头像裁剪非常有用。 1.1 实现思路: 在Photoshop等图像编辑软件中,可以通过调整图层蒙版来裁剪上层图层以匹配下层形状。在Android中,通过设置PorterDuff.Mode.SRC_IN或PorterDuff.Mode.DST...

    CircleCamera:Android自定义圆形拍照、解决非全屏(竖屏)下预览相机拉伸问题

    本项目“CircleCamera”专注于提供一个自定义的圆形拍照解决方案,同时解决了在非全屏(竖屏)状态下相机预览图像拉伸的问题,以及在平板等不规则分辨率设备上的正常显示。以下是关于这个项目的一些关键知识点和实现...

Global site tag (gtag.js) - Google Analytics