Android 为什么TypedValue.applyDimension()的缩放比例与BitmapFactory.decodeResource()不同?
我有一个100x100的图像和一些坐标,我想把它放在,它们与图像的比例相同。我使用BitmapFactory.decodeResource加载图像,并将其缩放到133x133。但是当我使用TypedValue.applyDimension和TypedValue.COMPLEX_UNIT_DIP来缩放坐标时,我得到的缩放因子是x2,而不是x1.33Android 为什么TypedValue.applyDimension()的缩放比例与BitmapFactory.decodeResource()不同?,android,Android,我有一个100x100的图像和一些坐标,我想把它放在,它们与图像的比例相同。我使用BitmapFactory.decodeResource加载图像,并将其缩放到133x133。但是当我使用TypedValue.applyDimension和TypedValue.COMPLEX_UNIT_DIP来缩放坐标时,我得到的缩放因子是x2,而不是x1.33 如何确保坐标和图像的缩放量相同?我正在xhdpi设备上进行测试,但我没有任何xhdpi资源,因此decodeResource正在获取我的hdpi资源并
如何确保坐标和图像的缩放量相同?我正在xhdpi设备上进行测试,但我没有任何xhdpi资源,因此decodeResource正在获取我的hdpi资源并按2/1.5=1.33的比例进行缩放
正确的解决方案似乎是,您应该以与mdpi资源相同的比例指定坐标,并确保以android期望的相同比例缩放备用大小的绘图表,然后使用TypedValue.applyDimension缩放坐标。源图像位于哪个通用资源桶中,你在测试什么样的设备?可能是xhdpi设备上的hdpi资源?在这种情况下,BitmapFactory可能会考虑资源所在的文件夹hdpi与xhdpi的比率为6:8或x1.33。另一方面,TypedValue可以从基线(即mdpi)开始缩放,mdpi与xhdpi的比率为4:8,或x2。我有一个星系连接,我相信这就是xhdpi。因为这个项目是从一些较旧的教程发展而来的,所以我最大的可绘制文件夹实际上是hdpi。这可能就是问题所在;我试试看。