我正在开发基于SurfaceView类的android游戏。目前,我试图优化不同屏幕尺寸的视图。画布位图绘制和屏幕密度
问题1:我有PNG档案在我的res文件夹,我使用Canvas.drawBitmap吸引他们。阅读这篇文章(http://developer.android.com/guide/practices/screens_support.html)后,我认为如果屏幕较大,android会调整位图大小。不幸的是,我发现在平板电脑上启动我的应用程序与在手机上启动应用程序时没有缩放(或任何更改)。那么它是如何完成的?我是否应该想出一些奇特的策略来计算可用空间并使用源矩形和目标矩形绘制我的位图?如果有人有一个最佳实践或一些提示如何在画布上绘制位图,会是很好的。我已经阅读了像素< - > dip转换主题,但我不得不说我不知道如何在我的应用中使用该“解决方案”。因此,任何帮助赞赏...
问题2:我在res文件夹3个PNG格式。一个ldpi,一个mdpi和一个hdpi。 Ldpi图像有50px * 50px,mdpi有75px * 75px,hdpi有100px * 100px。当我在模拟器(800 * 480)中加载应用程序时,它使用100 * 100 png。当我在Acer Iconia Tab上加载应用程序时,它使用75 * 75图像。我认为hdpi适用于大屏幕(= tab),mdpi或ldpi将用于模拟器屏幕。至少我认为机器人会用华电国际形象也是选项卡上,但我得到惊讶...任何移出这个也大加赞赏
对不起4长的文字,只是想清楚...
CYA EffDee
感谢您的评论。我试着用密度工作,但没有运气...我仍然有点困惑...我有一个宽度(= W)和高度(= H)的位图,而不是像我的原型-Verson中绘制位图给点10,10与 'drawBitmap(MYBITMAP,10,10,NULL)' 你建议我这样做 'drawBitmap(MYBITMAP,wholeBitmapRect,新的矩形(10,10,W * densityFactor,H * densityFactor) ,null)' 这让我疯狂! thx用于清除与dpi的价值...现在它是有道理的;) – Effdee
本文可能对您有用:http://stackoverflow.com/questions/5014882/drawing-a-bitmap-on-一个帆布-了缩放/ 5017017#5017017 – Thomas