适合 android xxhdpi 屏幕的最大图像尺寸的最小像素
minimum pixels of the largest image's side to fit android xxhdpi screen
我正在制作一个 android 全屏显示图像的应用程序。
我了解了一些关于 dpi 和 dp 的知识,但我没有发现我的图像的最大边必须有多少像素(预期在横向模式下也能很好地适应)才能在不同的设备上显示良好。
如文档中所述,最常用的屏幕配置是正常的 hdpi、xhdpi 和 xxhdpi 密度:
所以,如果我的想法是正确的,我可以只制作一张适合 xxhdpi 的图像,也可以在其他两个密度下正常工作,并将其放在 Android Studio 中 "res/drawable" 下文件夹(无限定符)。
在布局中以 dp 为单位指定图像大小,Android 应针对较小的配置缩放图像。
但是,对于 xxhdpi
,我的图像的最大边必须有多少像素(以像素为单位)才能显示良好?
编辑:我的图片的最长边必须有多少像素才能在xxhdpi 密度 图像没有出现颗粒状 ?
所有图片都是照片,不是图标,所以我不能使用矢量图。
好吧,如果您将适合 xxxhdpi
的图像放入文件夹 drawable
,那么它将适合所有屏幕。
但是还有另一种方法可以只使用一张图片,而不是针对不同的分辨率使用多张图片。这是通过使用 svg
图像,这些图像是矢量图像,不会受到放大或缩小的影响。
要使用 svg
,您需要遵循以下说明:
- 将图标设为
icon.svg
- 在 Android Studio 中,右键单击
drawable
文件夹
- 选择
New
-> Vector Asset
- 选择
Local File
(SVG、PSD)
- 选择您的
svg
文件
- 单击
Next
并选择名称
- 点击
Finish
在应用中 build.gradle
在 android
块中添加以下内容:
vectorDrawables {
useSupportLibrary true
}
在 xml 布局文件中,添加以下内容:
<AppCompatImageView
android:width="wrap_content"
android:height="wrap_content"
app:srcCompat="@drawable/your_svg_file"
/>
Android 为图像定义了比率以在所有不同的可绘制对象中设置
Android 图标需要五种不同的尺寸以适应不同的屏幕像素密度。较低分辨率的图标是根据基线自动创建的。
- mdpi: 160 dpi 1×
- hdpi: 240 dpi 1.5×
- xhdpi: 320 dpi 2×
- xxhdpi: 480 dpi 3×
- xxxhdpi:640 dpi 4×
以上尺寸适用于普通像素图标。操作栏、对话框和选项卡图标、启动器图标和通知图标的大小已修复 android
查看此 link 了解更多详情 http://iconhandbook.co.uk/reference/chart/android/
你得看看现在的智能手机市场。
在这里您可以看到市场上最流行的设备的屏幕尺寸和分辨率。
以每英寸像素为单位排序列表,您会看到顶级智能手机的分辨率大于 500 ppi 或以其他方式查看,远大于图像的 72ppi。
如果您有足够的 space 来存储或下载图像,请尝试以完整质量进行测试。如果那太多了,请尝试找到折衷方案。降低图像质量并在高分辨率屏幕上查看结果。
请注意,您没有在此处发布图像的总大小,如果大于屏幕尺寸,请查看图像的总大小并压缩以适合您的需要,尽可能保持分辨率.
编辑:只看图像的像素大小,目前智能手机的最大屏幕是 2560 x 1440 像素,因此您不需要比这更大的图像。
通过查看 Android Documentation。可以估计图片的大小。看下面的图片
因此,您的图片分辨率应该与此相似
LDPI: 200 X 320px
MDPI: 320 X 480px
HDPI: 480 X 800px
XHDPI: 720 X 1280px
XXHDPI: 960 X 1600px
XXXHDPI: 1440 x 2560px
一点点 +/- 不会影响结果,因为使用这些标准尺寸,任何肖像图片的纵横比都应该得到尊重。
如果我没看错你的回答,你说的是图像(可爱的猫和狗的照片?),不是图标?
我更喜欢将图像放入 nodpi 文件夹。
nodpi Resources for all densities. These are density-independent
resources. The system does not scale resources tagged with this
qualifier, regardless of the current screen's density.
然后我会创建一个全屏 ImageView 并让 imageView 在需要时进行缩放
我正在制作一个 android 全屏显示图像的应用程序。
我了解了一些关于 dpi 和 dp 的知识,但我没有发现我的图像的最大边必须有多少像素(预期在横向模式下也能很好地适应)才能在不同的设备上显示良好。
如文档中所述,最常用的屏幕配置是正常的 hdpi、xhdpi 和 xxhdpi 密度:
所以,如果我的想法是正确的,我可以只制作一张适合 xxhdpi 的图像,也可以在其他两个密度下正常工作,并将其放在 Android Studio 中 "res/drawable" 下文件夹(无限定符)。 在布局中以 dp 为单位指定图像大小,Android 应针对较小的配置缩放图像。
但是,对于 xxhdpi
,我的图像的最大边必须有多少像素(以像素为单位)才能显示良好?
编辑:我的图片的最长边必须有多少像素才能在xxhdpi 密度 图像没有出现颗粒状 ?
所有图片都是照片,不是图标,所以我不能使用矢量图。
好吧,如果您将适合 xxxhdpi
的图像放入文件夹 drawable
,那么它将适合所有屏幕。
但是还有另一种方法可以只使用一张图片,而不是针对不同的分辨率使用多张图片。这是通过使用 svg
图像,这些图像是矢量图像,不会受到放大或缩小的影响。
要使用 svg
,您需要遵循以下说明:
- 将图标设为
icon.svg
- 在 Android Studio 中,右键单击
drawable
文件夹 - 选择
New
->Vector Asset
- 选择
Local File
(SVG、PSD) - 选择您的
svg
文件 - 单击
Next
并选择名称 - 点击
Finish
在应用中
build.gradle
在android
块中添加以下内容:vectorDrawables { useSupportLibrary true }
在 xml 布局文件中,添加以下内容:
<AppCompatImageView android:width="wrap_content" android:height="wrap_content" app:srcCompat="@drawable/your_svg_file" />
Android 为图像定义了比率以在所有不同的可绘制对象中设置
Android 图标需要五种不同的尺寸以适应不同的屏幕像素密度。较低分辨率的图标是根据基线自动创建的。
- mdpi: 160 dpi 1×
- hdpi: 240 dpi 1.5×
- xhdpi: 320 dpi 2×
- xxhdpi: 480 dpi 3×
- xxxhdpi:640 dpi 4×
以上尺寸适用于普通像素图标。操作栏、对话框和选项卡图标、启动器图标和通知图标的大小已修复 android
查看此 link 了解更多详情 http://iconhandbook.co.uk/reference/chart/android/
你得看看现在的智能手机市场。
在这里您可以看到市场上最流行的设备的屏幕尺寸和分辨率。
以每英寸像素为单位排序列表,您会看到顶级智能手机的分辨率大于 500 ppi 或以其他方式查看,远大于图像的 72ppi。
如果您有足够的 space 来存储或下载图像,请尝试以完整质量进行测试。如果那太多了,请尝试找到折衷方案。降低图像质量并在高分辨率屏幕上查看结果。
请注意,您没有在此处发布图像的总大小,如果大于屏幕尺寸,请查看图像的总大小并压缩以适合您的需要,尽可能保持分辨率.
编辑:只看图像的像素大小,目前智能手机的最大屏幕是 2560 x 1440 像素,因此您不需要比这更大的图像。
通过查看 Android Documentation。可以估计图片的大小。看下面的图片
因此,您的图片分辨率应该与此相似
LDPI: 200 X 320px
MDPI: 320 X 480px
HDPI: 480 X 800px
XHDPI: 720 X 1280px
XXHDPI: 960 X 1600px
XXXHDPI: 1440 x 2560px
一点点 +/- 不会影响结果,因为使用这些标准尺寸,任何肖像图片的纵横比都应该得到尊重。
如果我没看错你的回答,你说的是图像(可爱的猫和狗的照片?),不是图标?
我更喜欢将图像放入 nodpi 文件夹。
nodpi Resources for all densities. These are density-independent resources. The system does not scale resources tagged with this qualifier, regardless of the current screen's density.
然后我会创建一个全屏 ImageView 并让 imageView 在需要时进行缩放