Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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应用程序中的密度_Android_Screen - Fatal编程技术网

Android应用程序中的密度

Android应用程序中的密度,android,screen,Android,Screen,我正在使用Canvas.drawBitmap在SurfaceView上绘制位图。我在res/drawable文件夹中有位图,它似乎可以在所有设备上正确缩放位图。 一些用户抱怨说,当他们使用名为LCDDensity Changer的根程序更改设备的屏幕密度时,位图不会相应缩放。一个大的位图会被压扁,好像它还在寻找旧的密度 当用户使用诸如LCD密度变换器之类的程序时,有没有办法处理密度变化 其他资料: 1.minSDKVersion=3 2.未设置targetSDKVersion 3.我使用getM

我正在使用Canvas.drawBitmap在SurfaceView上绘制位图。我在res/drawable文件夹中有位图,它似乎可以在所有设备上正确缩放位图。 一些用户抱怨说,当他们使用名为LCDDensity Changer的根程序更改设备的屏幕密度时,位图不会相应缩放。一个大的位图会被压扁,好像它还在寻找旧的密度

当用户使用诸如LCD密度变换器之类的程序时,有没有办法处理密度变化

其他资料: 1.minSDKVersion=3 2.未设置targetSDKVersion 3.我使用getMetrics来确定屏幕高度和宽度
4.我没有使用可绘制的hdpi、ldpi等文件夹

一种方法,我认为您需要使用hdpi、ldpi等,下面是一篇关于如何做到这一点的文章

第二种方法是,您可以使用DisplayMetrics类自动获取屏幕密度,并且每个密度有不同的图像。这里有这么多的讨论


我这里有很多问题。我的目标是v1.5,我一直在为屏幕位置使用硬编码常量,但不包括边框

我要: 1.切换到与屏幕分辨率和密度具有更好兼容性的2.2框架 2.使用drawBitmapBitmap位图、Rect src、Rect dst、Paint Paint而不是drawBitmapBitmap位图、float left、float top、Paint Paint。这使我能够准确地指定图形绘制的位置,并相应地进行缩放。
3.开始使用ldpi、hdpi、xhdpi等文件夹。我还考虑只使用hdpi文件夹,并允许其他设备缩小图像的比例。我不会使用xhdpi,因为我在某处读到姜饼2.3只支持它。

由于本机不支持更改设备密度,我认为您不应该支持它。
DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics);