Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么TypedValue.applyDimension()的缩放比例与BitmapFactory.decodeResource()不同?_Android - Fatal编程技术网

Android 为什么TypedValue.applyDimension()的缩放比例与BitmapFactory.decodeResource()不同?

Android 为什么TypedValue.applyDimension()的缩放比例与BitmapFactory.decodeResource()不同?,android,Android,我有一个100x100的图像和一些坐标,我想把它放在,它们与图像的比例相同。我使用BitmapFactory.decodeResource加载图像,并将其缩放到133x133。但是当我使用TypedValue.applyDimension和TypedValue.COMPLEX_UNIT_DIP来缩放坐标时,我得到的缩放因子是x2,而不是x1.33 如何确保坐标和图像的缩放量相同?我正在xhdpi设备上进行测试,但我没有任何xhdpi资源,因此decodeResource正在获取我的hdpi资源并

我有一个100x100的图像和一些坐标,我想把它放在,它们与图像的比例相同。我使用BitmapFactory.decodeResource加载图像,并将其缩放到133x133。但是当我使用TypedValue.applyDimension和TypedValue.COMPLEX_UNIT_DIP来缩放坐标时,我得到的缩放因子是x2,而不是x1.33


如何确保坐标和图像的缩放量相同?

我正在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。这可能就是问题所在;我试试看。