代码之家  ›  专栏  ›  技术社区  ›  ab11

在Android中,如何移动位图?

  •  1
  • ab11  · 技术社区  · 14 年前

    Bitmap newBitmap = Bitmap.createBitmap(oldBitmap.getWidth(), m_CurrentBitmap.getHeight(), Config.ARGB_8888);
    newBitmap = Bitmap.createBitmap(oldBitmap.getWidth(), deltaX, 0, oldBitmap.getWidth() - deltaX, oldBitmap.getHeight());
    

    因此,我尝试创建一个具有所需尺寸的新位图,并手动设置像素(带有偏移)。然而,这仍然会产生一个较窄的位图,缺少右侧的空白区域:

    Bitmap newBitmap = Bitmap.createBitmap(oldBitmap.getWidth(), oldBitmap.getHeight(), Config.ARGB_8888);
    
    int[] oldPixels = new int[(int)(oldBitmap.getWidth() - deltaX) * oldBitmap.getHeight()];
                m_CurrentBitmap.getPixels(oldPixels, 0, (int) (oldBitmap.getWidth() - deltaX), (int)deltaX, 0, (int) (oldBitmap.getWidth() - deltaX), oldBitmap.getHeight());
    
    newBitmap.setPixels(oldPixels, 0,  (int) (oldBitmap.getWidth() - deltaX), 0, 0, (int) (oldBitmap.getWidth() - deltaX), oldBitmap.getHeight());
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Bryan Denny    14 年前

    编辑: 好的,你基本上想把下面的旧位图画到新的位图上。

    你需要从 OldBitmap 像素来自 deltaX OldBitmap.Width NewBitmap 像素来自 0 NewBitmap.width - 德尔塔克斯 . 这应该在NewBitmap上留下一个右边距( NewBitmap.Width 德尔塔克斯 新地图宽度 )空白(假设它后面的画布是白色或任何“空白”颜色)。