Android 将位图的子集绘制到画布?

Android 将位图的子集绘制到画布?,android,bitmap,Android,Bitmap,我正在写我的第一个应用程序,所以我可能完全错了,但是 我有一个1600x880的资源映像。我想用该图像的一个子集填充整个屏幕到画布上,这样任意的x,y坐标标记屏幕左上角绘制的左上角。例如,如果我在N1上查看此图像,输入x=100和y=50,我希望看到从100,50到580850,因为它的显示区域是480x800 我想我需要使用Canvas.drawBitmap(位图位图,Rect src,Rect dst,Paint Paint)。但是,无论我插入哪个Rect(即使它是一组完全正常的值,不应该与

我正在写我的第一个应用程序,所以我可能完全错了,但是

我有一个1600x880的资源映像。我想用该图像的一个子集填充整个屏幕到画布上,这样任意的x,y坐标标记屏幕左上角绘制的左上角。例如,如果我在N1上查看此图像,输入x=100和y=50,我希望看到从100,50到580850,因为它的显示区域是480x800

我想我需要使用Canvas.drawBitmap(位图位图,Rect src,Rect dst,Paint Paint)。但是,无论我插入哪个Rect(即使它是一组完全正常的值,不应该与图像的任何边缘对接),我最终都会得到一个意外的区域或一个严重拉伸/压缩的输出

我尝试过使用各种计算组合,包括
display.getWidth()
getHeight()
canvas.getWidth()和getHeight()
,以及
bitmap.getWidth()和getHeight()
,但似乎没有任何效果


我不知道我做错了什么。

没有错误。地区在图像的一个不需要的区域被绘制。您的资源是否在
res/drawable nodpi
中?如果没有,它可能会被缩放吗?没关系。这个问题现在已经解决了,或者已经演变成一个完全不同的问题。出于某种原因,模拟器呈现的图像与实际手机不同。在手机上,它按预期显示。请注意,模拟器运行的Android与手机不同。如果是这种情况,你的应用程序可能无法在你正在测试的手机之外的其他手机上正常工作。