[英]Bitmap density causing problems
我正在做自己的像素計算,以便在屏幕上繪制圖像,並且具有精靈位圖(一個文件中包含4x2圖像)。 每個圖像為100x100,整個文件為400x200。 使用以下方法,我的繪圖未拉到位圖的正確部分,並且在scren上的放置不太正確:
public void drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint)
由於:API級別1
繪制指定的位圖,自動縮放/平移以填充目標矩形。 如果源矩形不為null,則它指定要繪制的位圖的子集。
注意:如果繪畫包含的maskfilter生成的蒙版超出了位圖的原始寬度/高度(例如BlurMaskFilter),則將繪制位圖,就好像它處於具有CLAMP模式的Shader一樣。 因此,原始寬度/高度之外的顏色將被復制為邊緣顏色。
此功能忽略與位圖關聯的密度。 這是因為源和目標矩形坐標空間處於各自的密度中,因此必須已經應用了適當的縮放因子。
參數
位圖>要繪制的位圖
src>可能為null。 要繪制的位圖的子集
dst>位圖將被縮放/轉換以適合的矩形
paint>可能為空。 用於繪制位圖的繪畫
Rect source = new Rect();
source.left = (this.currentFrame % 4) * 100;
source.right = source.left + 100;
source.top = (this.currentFrame / 4) * 100;
source.bottom = source.top + 100;
Rect dest = new Rect();
dest.top = (int) top;
dest.left = (int) left;
dest.right = dest.left + 100;
dest.bottom = dest.top + 100;
// draw current frame onto canvas
//canvas.drawBitmap(pics[this.currentFrame], left, top, painter);
canvas.drawBitmap(pics[0], source, dest, painter);
文檔明確指出密度被忽略,但是為什么我的圖像被縮放?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.