android中使用Canvas绘制指定位置和宽高度的图片

本文详细介绍了在Android中如何使用Canvas和Bitmap进行图像绘制的方法。包括基本的绘制操作以及通过指定源矩形和目标矩形来精确控制绘制区域的技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.cnblogs.com/error404/archive/2012/02/05/2339255.html
/*---------------------------------  
     * 绘制图片  
     * @param       x屏幕上的x坐标  
     * @param       y屏幕上的y坐标  
     * @param       w要绘制的图片的宽度  
     * @param       h要绘制的图片的高度  
     * @param       bx图片上的x坐标  
     * @param       by图片上的y坐标  
     *   
     * @return      null  
     ------------------------------------*/  
  
    public static void drawImage(Canvas canvas, Bitmap blt, int x, int y,   
            int w, int h, int bx, int by) {   
       Rect src = new Rect();// 图片 >>原矩形   
        Rect dst = new Rect();// 屏幕 >>目标矩形   
  
        src.left = bx;   
       src.top = by;   
       src.right = bx + w;   
       src.bottom = by + h;   
  
       dst.left = x;   
       dst.top = y;   
       dst.right = x + w;   
       dst.bottom = y + h;   
        // 画出指定的位图,位图将自动--》缩放/自动转换,以填补目标矩形   
         // 这个方法的意思就像 将一个位图按照需求重画一遍,画后的位图就是我们需要的了   
        canvas.drawBitmap(blt, null, dst, null);   
       src = null;   
       dst = null;   
    }   
  
    /**  
     * 绘制一个Bitmap  
     *   
     * @param canvas 画布  
     * @param bitmap 图片  
     * @param x 屏幕上的x坐标  
     * @param y 屏幕上的y坐标  
     */  
  
    public static void drawImage(Canvas canvas, Bitmap bitmap, int x, int y) {   
       // 绘制图像 将bitmap对象显示在坐标 x,y上   
        canvas.drawBitmap(bitmap, x, y, null);   
    }
//    GameView.drawImage(canvas, mBitDestTop, miDTX, mBitQQ.getHeight(), mBitDestTop.getWidth(), mBitDestTop.getHeight()/2, 0, 0);
    public static void drawImage(Canvas canvas, Bitmap blt, int x, int y, int w, int h, int bx, int by)
    {                                                        //x,y表示绘画的起点,
        Rect src = new Rect();// 图片
        Rect dst = new Rect();// 屏幕位置及尺寸
        //src 这个是表示绘画图片的大小
        src.left = bx;   //0,0  
        src.top = by;
        src.right = bx + w;// mBitDestTop.getWidth();,这个是桌面图的宽度,
        src.bottom = by + h;//mBitDestTop.getHeight()/2;// 这个是桌面图的高度的一半
        // 下面的 dst 是表示 绘画这个图片的位置
        dst.left = x;    //miDTX,//这个是可以改变的,也就是绘图的起点X位置
        dst.top = y;    //mBitQQ.getHeight();//这个是QQ图片的高度。 也就相当于 桌面图片绘画起点的Y坐标
        dst.right = x + w;    //miDTX + mBitDestTop.getWidth();// 表示需绘画的图片的右上角
        dst.bottom = y + h;    // mBitQQ.getHeight() + mBitDestTop.getHeight();//表示需绘画的图片的右下角
        canvas.drawBitmap(blt, src, dst, null);//这个方法  第一个参数是图片原来的大小,第二个参数是 绘画该图片需显示多少。也就是说你想绘画该图片的某一些地方,而不是全部图片,第三个参数表示该图片绘画的位置
        
        src = null;
        dst = null;
    }



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值