我的Android代码存在一个小问题。这是我第一次使用画布,我想为它设置一个图像,但保留一些宽高比。
这就是我现在正在做的事情,它将图像完全映射到画布上。它将图像宽度 - 高度设置为画布宽度 - 高度。
Drawable drawable = image; // gets the image
drawable.SetBounds(0, 0, canvasWidth, canvasHeight);
drawable.Draw(canvas);
这在某些设备上效果很好但是当设备很大时,拉伸非常糟糕。我想以这样的方式设置边界,使其保持纵横比。如果画布宽度 - 高度不是相同的宽高比,它将尝试使用宽高比填充画布,但可能会在x或y轴上留下一些空格。
int imgWidth = 500;
int imgHeight = 800;
我希望根据这些值在画布上映射图像,并根据需要进行拉伸,但即使未填充部分画布,也要保持此纵横比。
这样做的最佳方式是什么?
由于
答案 0 :(得分:0)
我已经回答了一个类似的问题 here。
为了保持纵横比,我这样做了:
game
以上适用于可绘制宽度小于其高度的情况。
如果drawable的高度大于它的宽度,那么首先将高度设置为你想要的大小,然后计算宽度。
答案 1 :(得分:-1)
在每个资源文件夹中提供正确的图像。正确的图像意味着正确的分辨率和屏幕密度。请参阅此链接http://developer.android.com/guide/topics/resources/providing-resources.html