我正在做我自己的像素计算在屏幕上绘图,并有一个精灵位图(一个文件中的4x2图像)。每张图片都是100x100,整个文件是400x200。使用下面的方法,我的画不拉位图的右侧部分,并在scren布局是不完全正确:位图密度导致问题
public void drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint)
自:API等级1
绘制指定的位图,自动缩放/翻译以填充目标矩形的 。如果源矩形不为空,则其指定要绘制的位图的子集。
注意:如果该涂料含有其生成 延伸超出该位图的原始宽度/高度(例如 BlurMaskFilter)的掩模的maskfilter,则位图将被吸引,好像它是在一个 着色器与CLAMP模式。因此,原始的宽度/高度之外的颜色将是边缘颜色的复制。
该函数忽略与位图相关的密度。这是 ,因为源矩形和目标矩形坐标空间的密度均为 ,所以必须已经应用适当的 比例因子。
参数
位图>将位图绘制
来源>可能为null。位图的子集要绘制
DST>,该位将被缩小/转换为适合
漆的长方形>可能为null。用油漆绘制位图
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);
的文件明确地说密度被忽略,但为什么我的形象被缩放?
你究竟是如何加载图片[0]?你有没有尝试getResources()。openRawResource(imageId)? – Renard 2012-04-03 08:37:13
此刻我还没有收到代码,稍后会进行检查。感谢您的建议。 – cjk 2012-04-03 12:40:17
@Renard - 这样做的窍门,虽然现在我重新介绍Android只是试图帮助我处理不同的密度。尽管如此,它让精灵变得非常痛苦...... – cjk 2012-04-03 20:58:40