我正在开发基于手机的Android应用程序。但是,最近该应用程序需要支持平板电脑。
设计基于1920 * 1080,我将所有图像/图标放入xxhdpi文件夹中,对于较低分辨率,我只是让android帮我重新缩放它。
问题是,它在手机上运行良好(1280 * 800 5"),但是当我使用平板电脑检查时(例如,galaxy tab 2的分辨率仅为1280 * 800 10.1"和1024 * 600)但它看起来很模糊。怎么解决?谢谢你的帮助。
已添加
<supports-screens
android:resizeable="true"
android:smallScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:normalScreens="true"
android:anyDensity="true"/>
已经但仍然相同
更新:我还发现dp对于平板电脑来说太小了
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
<!-- API 11 theme customizations can go here. -->
<item name="android:actionBarSize">60dp</item>
</style>
我使用的是自定义actionBarSize,它在手机上运行良好,但60dp对于平板电脑来说太小了,我该如何解决呢?感谢
答案 0 :(得分:4)
嗯,当您使用图片时,我不认为您遵循指南。 Android文档在处理图像时没有说明屏幕分辨率,而是在引用explained here的图像资源(通常是可绘制的)时关注像素密度。请记住,您可以有两种类型的图像(据我所知):
使用drawable时,你必须专注于像素密度而不是屏幕分辨率,因为你刚刚发现一个小的(或常规的)屏幕设备可以拥有与大屏幕设备完全相同的分辨率,有时甚至可以普通屏幕设备(手机)可以具有比大屏幕设备(平板电脑)更高的分辨率,其中显然在这种情况下手机具有更高的像素密度。因此,您需要遵循他们的指导方针,以中等像素密度(mdpi)设备为基准来设计您的图像资源,如下所示......以96px图像为例......
drawable
文件夹中提供96px的图像...这是您的基线drawable-hdpi
文件夹中完全相同名称drawable-xhdpi
文件夹drawable-xxhdpi
文件夹请注意,在链接中,您不需要为像素密度较低的设备提供图像,因为Android会将其从mdpi缩小而不会出现任何问题......
注意:Android还支持低密度(LDPI)屏幕,但您通常不需要创建此大小的自定义资源,因为Android有效地将您的HDPI资产缩减1/2以匹配预期大小
在您的情况下,发生的事情是您的Galaxy平板电脑具有较低的像素密度,Android将图像从xxhdpi缩小到平板电脑所具有的任何密度(hdpi或xhdpi)....所以,它的图像是对于hdpi设备,Android会将其缩小为341px(对于xhdpi)或256px(对于hdpi设备)。
如果您遵循这些指导原则并专注于像素密度,那么您应该没问题。但是,对于assets
文件夹中的图片,除了使用ScaleType
枚举或使用stretchable 9-patch图片之外,您可以做的不多
希望这有帮助
实际上,根据this link,Galaxy Tab 2有mdpi屏幕,这意味着你的图像将从xxhdpi缩小三次。您应该在相应的drawable-x
文件夹
答案 1 :(得分:1)
我知道它太晚了但最近我遇到了关于应用启动器图标在平板电脑上看起来的方式同样的问题,而且它们很模糊。我确信AOS诚实地选择具有mdpi显示密度的平板电脑的mdpi drawables,这就是问题所在。所以我通过将智能手机图标放到平板电脑资源目录中解决了这个问题(左列 - 通常智能手机可绘制密度和右侧 - 平板电脑dirs):
drawable-xhdpi -> drawable-large-mdpi (these are 96x96px)
drawable-xxhdpi -> drawable-large-hdpi (these are 144x144px)
drawable-xxxhdpi -> drawable-large-xhdpi (these are 192x192px)
drawable-xxxhdpi -> drawable-xlarge (these are 192x192px)
我不确定最后两个是否必须是288x288像素,但由于我在项目中没有这样的图标,我猜192x192就足够了。