`
大器晚成
  • 浏览: 52799 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Android drawRegion 绘制

阅读更多
public void drawRegion1(Image img, int x_src, int y_src, int width,
     int height, int transform, int x_dest, int y_dest, int anchor)  {
canvas.save();
int ix = 0, iy = 0;
switch (transform) {
case TRANS_NONE: // 0
break;
case TRANS_ROT90: // 90
canvas.rotate(90, x_dest, y_dest);
iy = height;
break;
case TRANS_ROT180: // 180
canvas.rotate(180, x_dest, y_dest);
iy = height;
ix = width;
break;
case TRANS_ROT270: // 270
canvas.rotate(270, x_dest, y_dest);
ix = width;
break;
case TRANS_MIRROR: // M
canvas.scale(-1, 1, x_dest, y_dest);// 镜像
ix = width;
break;
case TRANS_MIRROR_ROT90: // M90 j2me<-->android 270
canvas.scale(-1, 1, x_dest, y_dest);// 镜像
canvas.rotate(270, x_dest, y_dest);
ix = width;
iy = height;
break;
case TRANS_MIRROR_ROT180: // M180
canvas.scale(-1, 1, x_dest, y_dest);// 镜像
canvas.rotate(180, x_dest, y_dest);
iy = height;
break;
case TRANS_MIRROR_ROT270: // M270 j2me<-->android 90
canvas.scale(-1, 1, x_dest, y_dest);// 镜像90
canvas.rotate(90, x_dest, y_dest);
break;
}
canvas.clipRect(x_dest - ix, y_dest - iy, x_dest - ix + width, y_dest
- iy + height);
canvas.drawBitmap(img.getBitmap(), x_dest - ix - x_src, y_dest - iy - y_src,
paint);
canvas.restore();

}

    protected Rect srcRec = new Rect();
protected RectF dstRec = new RectF();
   
    public void drawRegion2(Image src, int x_src, int y_src, int width,
    int height, int transform, int x_dest, int y_dest, int anchor) {
    // TODO deal with parameter transform
    srcRec.left = x_src;
    srcRec.top = y_src;
    srcRec.right = srcRec.left + width;
    srcRec.bottom = srcRec.top + height;
    dstRec.left = x_dest;
    dstRec.top = y_dest;
    dstRec.right = dstRec.left + width;
    dstRec.bottom = dstRec.top + height;
    this.canvas.drawBitmap(src.getBitmap(), srcRec, dstRec, paint);
    }
分享到:
评论

相关推荐

    利用Android的Matrix类实现J2ME的drawRegion的镜像方法

    这篇博文"利用Android的Matrix类实现J2ME的drawRegion的镜像方法"探讨了如何在Android环境中复现J2ME的`drawRegion`功能,该功能通常用于在画布上绘制图像的特定区域并支持各种效果,如翻转(镜像)。 在J2ME中,`...

    Nokia封装的drawRegion

    Nokia封装的`drawRegion`函数提供了一个灵活的接口,用于实现复杂的图像绘制效果。通过对变换类型和锚点的支持,开发人员可以根据具体需求轻松地调整图像的位置和方向。理解并掌握该函数的使用方法,有助于在图形...

    C# 使用GDI绘制雷达图的实例

    `DrawPolygon`、`DrawLines`、`DrawText`、`DrawRegion`和`DrawCircle`这五个私有方法分别负责绘制多边形边、连接线、维度文字、填充区域和中心圆点。 1. `DrawPolygon`方法绘制多边形的边框,通过`Pen`对象指定...

    开发中j2me与android的对比

    至于旋转,J2ME通常使用drawRegion或drawImage配合旋转角度,而Android可以创建一个新的Bitmap进行翻转后再绘制,或者使用Matrix进行更复杂的图像变换。 综上所述,J2ME和Android在开发环境、工程组织、代码结构...

    Android RadarView雷达图(蜘蛛网图)的实现代码

    绘制多边形需要使用drawPolygon方法,绘制连线需要使用drawLines方法,绘制文字需要使用drawText方法,绘制覆盖区域需要使用drawRegion方法。 在drawPolygon方法中,需要使用Path类来绘制多边形,首先需要计算圆心...

    开发中j2me与android的比较.pdf

    - **Android**:覆盖 `onDraw(Canvas g)` 方法来进行绘制。 6. **Graphics** - **J2ME**:使用 `Graphics` 类来处理绘图操作。 - **Android**:使用 `Canvas` 类,提供了丰富的绘图功能。 7. **Image 的创建** ...

    画布开发Canvas(二).pdf

    使用 `drawRegion()` 方法可以在 Canvas 组件上绘制图片,例如,`g.drawRegion(img,0,0,img.getWidth(),img.getHeight(),Sprite.TRANS_NONE,100,200,Graphics.TOP|Graphics.LEFT)`。图片的位置和大小可以通过参数来...

    android图片处理方法

    public void drawRegion(Image image_src, int x_src, int y_src, int width, int height, int transform, int x_dest, int y_dest, int anchor) { // 根据anchor位置调整dest坐标 // ... Bitmap new...

    C# 多线程画图 示例源码(draw Region By Thread).zip

    例如,你可能会有一个名为`DrawRegion`的方法,它接受一个Graphics对象,用于在指定的设备上下文上进行绘制。创建线程的代码可能如下: ```csharp Thread drawThread = new Thread(new ThreadStart(DrawRegion)); ...

    winform创建不规则窗体和控件源码.rar.rar

    3. **绘制形状**:使用`Graphics`对象,调用`DrawPath`或`DrawRegion`方法来绘制不规则形状。首先,你需要定义一个`GraphicsPath`或`Region`对象,然后添加直线、曲线等路径到其中。这些路径可以由`AddLine`、`...

    winform创建不规则窗体和控件源码2019

    1. 重写OnPaint事件:通过覆盖窗体的OnPaint事件,我们可以使用Graphics类中的DrawRegion方法绘制自己的形状。首先创建一个Region对象,然后使用Path类定义不规则形状的路径,最后将Region设置为窗体的区域。 ```...

    透明指定区域

    同时,`Graphics`对象的`DrawREGION`方法可以用于绘制非矩形的透明区域。 2. **使用Windows API**: Delphi可以方便地调用Windows API函数,如`CreateRectRgn`和`SelectClipRgn`来创建和选择剪辑区域。我们可以在`...

    j2me动画结构.doc

    使用J2ME提供的绘图API,如`drawImage()`和`drawRegion()`,将帧内容绘制到屏幕上,同时考虑精灵的翻转和位置。 2.4 总结 2D动画的核心在于有效地管理图像、帧、动作,并通过计算和绘图实现动态效果。开发者需要...

    j2me精灵图和拼图技巧例子

    3. **裁剪与绘制**:在J2ME中,使用`Graphics`对象的`drawRegion()`方法可以从精灵图中裁剪出指定部分并将其绘制到屏幕上。这允许我们动态地改变精灵的位置和状态。 4. **优化内存使用**:由于J2ME平台资源有限,...

    C# winform窗体透明案例

    例如,使用`Glasslib`,你可以在窗体的`Load`事件中初始化玻璃效果,然后在窗体的`Paint`事件中绘制内容。以下是一个简单的使用示例: ```csharp using Glasslib; private void Form1_Load(object sender, ...

    halcon 色彩的检测

    DrawRegion (Region) DisplayImage (Image) ``` 在这个例子中,我们创建了一个HSV颜色模型,范围大致为鲜艳的红色。然后读取图像,使用`ColorMatch`算子进行匹配,并显示匹配结果。根据实际情况,你可能需要调整...

Global site tag (gtag.js) - Google Analytics