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

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-使用clippath实现的CircleImageView没有Bitmap没有锯齿

    本篇将详细探讨如何使用`clipPath`方法来实现一个没有Bitmap锯齿的CircleImageView。 首先,让我们理解什么是`clipPath`。在Android的Canvas类中,`clipPath()`是一个用于剪裁绘制区域的方法,它可以将当前的绘图...

    Android canvas.save()和canvas.restore()的理解

    在Android图形系统中,`Canvas`是用于在Bitmap或Surface上进行绘图操作的重要类。它提供了各种绘制路径、文本、矩形、圆形以及其他图形的方法。`save()`和`restore()`是`Canvas`中两个非常关键的方法,它们主要用于...

    Android canvas drawBitmap方法详解及实例

    在Android开发中,Canvas是用于在屏幕上绘制图形和图像的核心组件。`drawBitmap()`方法是Canvas的一个关键函数,用于在Canvas上绘制Bitmap图像。本文将深入解析`drawBitmap()`方法的参数及其用法,并通过实例来说明...

    android-canvas.rar_ android Canvas_android canvas_android canv

    在Android应用开发中,Canvas通常与Bitmap配合使用。Bitmap是一个可以存储像素数据的类,我们可以将它看作是一块画布,而Canvas则是我们的画笔,用来在Bitmap上进行绘画操作。例如,我们可以通过`drawRect()`来绘制...

    html2canvas.js 下载

    《html2canvas.js:网页截屏的利器》 在当今的Web开发中,用户界面的交互性和可分享性越来越重要,而html2canvas.js正是...了解并熟练掌握html2canvas.js的使用,对于Web开发者来说,无疑是一个提升项目质量的利器。

    Android 自定义画布canvas 实现绘制和清空画布功能

    在Android开发中,自定义画布Canvas是实现图形绘制的核心工具。...总之,自定义画布Canvas是Android图形界面开发中不可或缺的一部分,通过熟练掌握其用法,可以实现各种复杂而富有创意的视觉效果。

    Android 画布Canvas之连线动画Demo

    `Canvas`类提供了丰富的绘图方法,让我们能够在Bitmap或者Surface上绘制线条、形状、文本等元素。在这个"Android画布Canvas之连线动画Demo"中,我们将深入探讨如何利用Canvas实现动态的连线动画效果,包括控制动画...

    Android截图,圆形,Canvas.zip

    这个压缩包“Android截图,圆形,Canvas.zip”显然包含了关于如何在Android中实现圆形截图以及使用Canvas进行自定义图形绘制的示例代码。让我们深入探讨这两个主题。 首先,Android截图是一个常见的需求,通常用于...

    安卓手绘图片处理画板相关-Android截图圆形Canvas.rar

    我们可以先创建一个圆形路径(使用`Path.addCircle()`),然后使用`canvas.clipPath(path)`来限制后续绘制的区域。这样,即使原截图是矩形,最终显示出来的效果也会是一个圆形。 Canvas是Android图形绘制的核心组件...

    水墨画生成canvas动效.rar

    水墨画生成canvas动效.rar 水墨画生成canvas动效.rar 水墨画生成canvas动效.rar 水墨画生成canvas动效.rar 水墨画生成canvas动效.rar 水墨画生成canvas动效.rar 水墨画生成canvas动效.rar 水墨画生成canvas动效.rar ...

    安卓Andriod源码——截图,圆形,Canvas.zip

    在Android应用中,我们可以使用`View`类的`draw()`方法来获取屏幕的内容,并将其保存为Bitmap对象。以下是一个简单的截图示例: ```java public static Bitmap captureScreen(View view) { Bitmap bitmap = Bitmap...

    android canvas 画曲线图 画三角形(多边形)

    本篇文章将详细讲解如何利用Canvas在Android中画曲线图和三角形(多边形),并结合示例代码帮助理解。 首先,我们要明白Canvas的基本用法。Canvas是Android中的一个类,它提供了在Bitmap上绘制图形的方法。通常,...

    android图形操作

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

    Android代码-Android截图圆形Canvas.rar

    总的来说,这个压缩包提供了一种在Android中实现圆形截图的方法,对于理解和实践Android图形绘制以及`Canvas`的使用具有一定的参考价值。开发者可以借此了解Android图形系统的工作原理,并扩展到其他复杂的图形操作...

    利用Android画圆弧canvas.drawArc()实例详解

    在Android开发中,Canvas类是用于在Bitmap上进行绘制的核心组件。`canvas.drawArc()`方法则是Canvas类中用于绘制圆弧的重要方法,它允许开发者在屏幕上创建各种形状和图案,如饼图、进度条等。本文将深入解析`canvas...

    Android 使用 PorterDuff.Mode.XOR 自定义遮罩

    canvas.drawBitmap(maskBitmap, 0, 0, null); // 绘制遮罩位图 canvas.restore(); // 恢复绘图环境 // 在这里绘制你的内容,它会与遮罩位图进行XOR运算 // 例如,绘制一个背景图片 Bitmap contentBitmap = ......

    Android开发者学习笔记——View、Canvas、bitmap

    Android开发者学习笔记——View、Canvas、bitmap Android 开发者学习笔记——View、Canvas、bitmap 是 Android 开发中常用的类,本文将通过实例讲解 View、Canvas 等相关知识点。 从资源中获取位图 在 Android ...

    安卓Android源码——截图,圆形,Canvas.zip

    本文将详细解析如何利用Android的源码实现这些功能,特别是使用Canvas进行绘制的操作。 首先,让我们来了解一下`Canvas`。在Android中,`Canvas`是图形绘制的核心,它提供了在Bitmap上绘制线条、文本、图像等各种...

    Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)

    在Android开发中,Canvas是用于在屏幕上绘制2D图形的核心组件。它允许开发者直接在Bitmap上进行绘制操作,实现各种视觉效果。以下是对标题和描述中提到的各种图形绘制方法的详细说明: 1. **点(Point)**:使用`...

Global site tag (gtag.js) - Google Analytics