Android在画布中的指定X,Y位置绘制位图

时间:2014-03-18 09:51:17

标签: android bitmap android-canvas

  

我有两张图片,第一张图片是透明区域   那个第二张图片我必须适合第一张图片的透明区域   图片 。因为我有第一个图像高度,宽度,x,y值.i   通过在画布上绘制位图来组合这两个图像   下方。

Bitmap bm = Bitmap.createBitmap(overLay.getWidth(),
            overLay.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas combineImg = new Canvas(bm);

    combineImg.drawBitmap(overLay, 0, 0, null);
    // combineImg.drawbitma
    combineImg.drawBitmap(mask, 61, 111, null);
    ImageView img = (ImageView) findViewById(R.id.image);
    img.setImageBitmap(bm);
  

但它不适合正确的位置。任何人都有这个想法请在这里解释。   我得到的输出如下。   enter image description here

1 个答案:

答案 0 :(得分:0)

你从顶边获得x y位置...
当你合并它们时,就会出现错误......
在图像视图中获取位图x y,减去错误,然后给这些x y位置合并位图。

    int ih = backgroundIv.getHeight();//height of imageView
    int iw = backgroundIv.getWidth();//width of imageView
    int iH = backgroundIv.getDrawable().getIntrinsicHeight();//original height of underlying image
    int iW = backgroundIv.getDrawable().getIntrinsicWidth();//original width of underlying image


    if (ih/iH<=iw/iW) iw=iW*ih/iH;//rescaled width of image within ImageView
    else ih= iH*iw/iW;//rescaled height of image within ImageView

    iv_OverlayImage.requestLayout();
    iv_OverlayImage.getLayoutParams().height = ih;
    iv_OverlayImage.getLayoutParams().width = iw;

    pixelsToRight = (backgroundIv.getWidth() - iw)/2;

我希望这会有所帮助...... 干杯:)