[转]http://www.j2medev.com/bbs/dv_rss.asp?s=xhtml&boardid=11&id=4811&page=8
对于clipRect,API是这么说的:Intersects the current clip with the specified rectangle. The resulting clipping area is the intersection of the current clipping area and the specified rectangle. This method can only be used to make the current clip smaller. To set the current clip larger, use the setClip method.
大概意思是:当前裁剪与指定的矩形相交,新的裁剪区是当前裁剪区和指定矩形的交集,clipRect只能使当前裁剪区域更小,如果希望增大裁剪区域,则使用setClip.
用代码说明一下:
private void Test(Graphics g) {
//clipRect()
g.setColor(0xff0000);
g.clipRect(10, 10, 100, 100);
g.clipRect(20, 20, 100, 100);
g.fillRect(0, 0, getWidth(), getHeight());
//绘制两次设定的矩形边框
g.setClip(0, 0, getWidth(), getHeight());
g.setColor(0x0000ff);
g.drawRect(10, 10, 100, 100);
g.drawRect(20, 20, 100, 100);
//求出裁剪区域坐标和大小
clipX = g.getClipX();
clipY = g.getClipY();
clipW = g.getClipWidth();
clipH = g.getClipHeight();
print();
}
public void print(){
System.out.println("clipX:"+clipX+" clipY:"+clipY);
System.out.println("clipW:"+clipW+" clipH:"+clipH);
}
结果:
clipX:20 clipY:20
clipW:90 clipH:90
显示如下:
此主题相关图片如下001.jpg:
很容易看出,填充的是两个矩形的交集。
总结如下:
setClip() 清除之前的裁剪区,重新设定裁剪区
clipRect() 用(之前的裁剪区域)和(新的矩形区域)的交集作为新的裁剪区
分享到:
相关推荐
在Android开发中,Canvas是用于绘制2D图形的重要工具,它可以让我们在屏幕上画出各种复杂的形状和图像。其中,`clipRect`是一个非常...理解和熟练运用`clipRect`,能显著提升Android应用的用户体验和界面设计的灵活性。
通过调整`clipRect`的坐标和大小,并配合`postInvalidate()`或者`postDelayed()`来延迟执行下一次绘制,就可以实现连续的动画效果。 除了`clipRect`,标签还提到了“裁剪”和“动画”。在Android中,裁剪不仅可以...
在Android开发中,Canvas与clipRect是两个非常重要的概念,它们是进行图形绘制和区域剪裁的核心工具。这篇学习笔记将深入探讨这两个概念及其在实际应用中的使用。 首先,Canvas可以理解为画布,它是Android系统提供...
总的来说,掌握Canvas的`clipRect()`方法对于Android应用的界面设计和性能优化至关重要。通过学习和实践,开发者能够创建出更丰富、更精细的用户界面,提升用户体验。而对源码的深入探究则有助于提升开发者解决问题...
今天我们将深入探讨`Canvas`类中的`clipRect()`方法,它用于实现局部绘图和切割原图绘制的功能。 `Canvas`是Android图形系统的核心组件之一,允许开发者在屏幕上画出各种形状和图像。`clipRect()`方法则是`Canvas`...
本篇文章将详细介绍如何使用`clipRect`方法来切割Android Canvas画布,以及它的工作原理和相关选项。 `clipRect`方法允许开发者限制在画布上绘制的区域,换句话说,它可以帮助我们“剪裁”或“切割”画布。此方法的...
Google官方发布视频
设置剪切区域,J2ME的setClip在Android中对应的API是clipRect,并且Android还提供了Region.Op参数。至于旋转,J2ME通常使用drawRegion或drawImage配合旋转角度,而Android可以创建一个新的Bitmap进行翻转后再绘制,...
如果需要进行裁剪,可以利用`setClip()`或`clipRect()`方法设置显示区域。 在显示图像时,`drawImage()`方法会立即返回,因此如果图像尚未完全加载,可能会看到不完整的图像或者空白。为了确保图像完全加载,可以...
g.SetClip(clipRect); // 绘制直线 Pen linePen = new Pen(Color.Blue, 2); Point p1 = new Point(50, 50); Point p2 = new Point(300, 300); g.DrawLine(linePen, p1, p2); // 恢复默认裁剪 g.ResetClip(); ``` ...
坐标系统是相对于Graphics对象的转换原点,所有呈现操作只影响当前剪贴区内的像素,剪贴区可以通过`setClip`或`clipRect`方法调整。然而,`Graphics`对象也有一些限制,比如不能绘制复杂图形、虚线、宽度可变的线条...
通过设置动画的时长、起始和结束值,我们可以精确控制颜色变化的速度和过程。 在项目代码中,开发者可能会有一个颜色渐变的回调函数,每当ViewPager的页面状态发生变化时,这个回调函数就会被调用,从而更新标题...
4. **ClipRect和PorterDuff模式**:剪切图动画可能涉及到对视图的裁剪操作,`ClipRect`可以用来限制绘图区域。同时,`PorterDuff`模式可以控制像素混合规则,实现更复杂的剪切效果。 5. **OnAnimatorUpdateListener...
3. 在OnPaint事件中,首先清除Canvas,然后使用ClipRect和ExcludeClipRect设置剪切区域。 4. 使用Arc函数绘制半圆,指定合适的参数以确保只绘制半圆。 5. 如果需要透明效果,设置AlphaBlend属性为True。 6. 最后,...
3. **Op参数**:在调用clipRect()和clipPath()方法时,还可以提供一个Op参数,它定义了当前剪切区域与已有的剪切区域如何合并。常用的Op有`CLIP_OP_INTERSECT`(交集)、`CLIP_OP_UNION`(并集)、`CLIP_OP_DIFFERENCE`...
Android 提供了三种 Clip 方式:clipRect、clipPath 和 clipRegion。这三种方式可以对 Canvas 进行剪切,限制绘制的区域。 其中,ClipRect 接受四个参数,分别是 left、top、right、bottom,它们定义了 Clip 的矩形...
- 包括 `clipRect()` 和 `clipPath()` 的使用以及各种几何变换。 4. **使用不同的绘制方法来控制绘制顺序** - 控制绘制顺序可以优化性能,减少不必要的视图层级。 #### 五、结论 自定义View是Android开发中不可...
综上所述,虽然J2ME和Android在许多方面有相似之处,但它们之间的区别也很明显。J2ME更侧重于轻量级应用的开发,而Android则提供了更为丰富的特性和更高的性能。随着技术的发展,Android已成为主流的移动开发平台之...