我有一个全屏幕PNG我想显示的飞溅。 只有一个错误,我不知道该怎么把大小在每个绘制文件夹( ldpi
, mdpi
, hdpi
和xhdpi
)。 我的应用程序应该运行良好,美观上的所有手机和平板电脑。 我应该创造这样的飞溅显示漂亮的所有屏幕上的什么大小(像素)?
Answer 1:
放弃
这个答案是从2013年开始,是严重过时。 由于Android 3.2的现在有6组屏密度。 这个答案将是我能够尽快更新,但没有ETA。 请参阅官方文档在此刻所有的密度(虽然在特定的像素大小的信息是一如既往很难找到)。
这里的TL / DR版本
创建4个图像,每个屏幕密度:
- XLARGE(xhdpi):640x960的
- 大(华电国际):480×800
- 介质(MDPI):分辨率320x480
- 小(LDPI):240×320
阅读9修补图像介绍 Android开发者指南
- 具有能够不影响最终结果被安全地拉伸区域设计图片
由此,Android将选择用于该设备的图像密度相应的文件,那么它会根据9-补丁标准拉伸图像。
TL的端;博士。 全速前进后
我就回答了问题的设计相关的方面。 我不是开发商,所以我不能够实现许多提供的解决方案的提供代码。 唉,我的目的是帮助,因为我是当我帮助开发我的第一个Android应用程序谁是为丢失的设计师。
适合所有大小
有了Android,企业可以开发自己的手机,几乎任何大小的表,他们想要的几乎任何决议。 正因为如此,没有“右图像大小”启动画面,因为没有固定的屏幕分辨率。 这提出了一个问题,对于想要实现一个闪屏的人。
你的用户真的希望看到一个闪屏?
(在一个侧面说明,闪屏稍微可用性球员之间气馁。有人认为,用户已经知道了什么应用程序,他拍了拍,并用闪屏品牌的形象是没有必要的,因为它仅中断与用户体验一个“广告”。但是,应该使用,因为需要一些相当大的负荷初始化(5S +),包括游戏和应用程序时,这样,使用户不会被卡想,如果应用程序崩溃或不能)
屏幕像素密度; 4类
因此,在市场上的手机给这么多不同的屏幕分辨率,谷歌采取了一些替代品和漂亮的解决方案,可以帮助。 你必须知道的第一件事是,Android的所有屏幕分成4点不同的屏幕密度:
- 低密度(LDPI〜120DPI)
- 介质密度(MDPI〜160dpi)
- 高密度(华电国际〜240dpi)
- 超高密度(xhdpi〜320dpi)(这些DPI值是近似值,因为定制的设备会有不同的DPI值)
你(如果你是一个设计师)需要从该知道的是,安卓基本上是从4个图像选择显示,根据设备上。 所以,你基本上要设计4倍不同的图像(虽然更可以为不同的格式,如宽屏,人像/风景模式等进行开发)。
考虑到这一点知道这一点:除非你设计用的画面采用的是Android中使用的每一个分辨率,图像将被拉伸以适应屏幕大小。 除非你的形象基本上是一个渐变或模糊,你会得到与拉伸一些不想要的失真。 所以,你有两种基本选择:为每个屏幕尺寸/密度的组合图像,或者创建四个9片图像。
最难的解决方案是设计不同的闪屏为每一个分辨率。 您可以通过结束后在表决议案启动此页面 (有更多的例子:960×720没有被列入其中)。 假设你在图像中有一些小细节,比如小文,你要设计一个以上的屏幕分辨率的每个。 例如,一个480x800的图像显示在屏幕中可能看起来不错,但较小的屏幕上(与高密度/ DPI)的徽标可能变得太小,或一些文本可能变得不可读。
9补丁图像
另一个解决方案是创建一个9补丁图像 。 它基本上是周围的图像中的1象素透明边界,并且通过在该边界可以定义哪个图像的部分将被允许伸展的顶部和左侧区域中绘制黑色像素。 我不会去到的9补丁图像是如何工作的细节,但在短期,即对齐在顶部和左侧的区域的标记的像素是会重复拉伸图像的像素。
基本原则:
- 您可以在Photoshop这些图像(或可以准确地创建透明的PNG图片编辑软件)。
- 在1个像素的边框必须是饱满通透。
- 在1个像素的透明边框必须是在你的图像中的所有,而不只是顶部和左侧。
- 你只能在这方面的绘制黑色(#000000)像素。
- 顶边框和左边框(其定义图像拉伸)只能有一个点(x 1像素),两个点(两个1 x 1像素)或一个连续的行(宽×1像素或1像素×高)。
- 如果您选择使用2点,图像将被按比例扩大(所以每个点都会轮流扩大,直到最后宽/高达到)
- 该像素边框必须是除了预期基本文件尺寸。 所以一个100x100的9修补图像具有实际拥有102x102(顶部,底部100×100 + 1像素,左,右)
- 9补丁图像与* .9.png结束
所以,你可以放置在您的标志两侧的1点(在顶部边框),和1点上方和下方(在左边框),而这些标记的行和列将是舒展的唯一像素。
例
这里有一个9修补图像,102x102px(100x100的最终大小,为应用目的):
这里是相同的图像的200%的缩放:
注意顶部和左侧说法,其中行/列将扩大1px的痕迹。
下面是这个形象是什么样子的100×100的内部应用程序:
而这里的,如果扩大到460x140它想什么:
最后一两件事要考虑。 这些图像可能会显得精致您的显示器屏幕上和大多数手机,但如果该设备具有非常高的图像密度(DPI),图像会显得太小。 也许仍清晰可辨,但与1920×1200分辨率的平板电脑时,图像会出现在中间的一个非常小的方形。 那么,有什么解决办法? 设计4个不同的9-贴片发射器的图像,每一个用于一个不同的密度设置。 为了确保不会发生缩水,应该在每个类别中密度最低的共同分辨率设计。 收缩是不可取的,因为这里的9补丁只占拉伸,所以在收缩过程小文和其他元素可能会失去可读性。
下面是每个类别的密度最小,最常见的分辨率列表:
- XLARGE(xhdpi):640x960的
- 大(华电国际):480×800
- 介质(MDPI):分辨率320x480
- 小(LDPI):240×320
所以在设计上述决议案四溅屏幕,展开图像,把1px的透明边框的画布上,并标记行/列将可伸展的。 请记住,这些图像将被用于在密度类别中的任何设备,让您的LDPI图像(240×320)可能会被拉伸至1024x600分辨率的超大平板电脑的小图像密度(〜120 DPI)。 所以9补丁是针对伸展的最佳解决方案,只要你不想要的照片或复杂的图形启动画面(记住这些限制可以在创建设计)。
同样,对于这种拉伸不会发生的唯一方法就是设计一个屏幕的每个分辨率(或者每个分辨率密度的组合,如果你想避免图像变得过小/大高/低密度器件),或者告诉图像不拉伸,有一个背景颜色出现拉伸的地方会发生(还记得的是Android引擎渲染特定的颜色可能会看起来从Photoshop中呈现相同的特定颜色的不同,因为颜色配置文件)。
我希望这使得任何意义。 祝好运!
Answer 2:
肖像模式
MDPI是小320x480 DP = 320x480像素(1×)
LDPI是0.75×MDPI = 240x360px
HDPI是1.5×MDPI = 480x720px
XHDPI是2×MDPI = 640x960px
XXHDPI是3×MDPI = 960x1440px
XXXHDPI是4×MDPI = 1280x1920px
风景模式
MDPI是小480x320 DP = 480x320px(1×)
LDPI是0.75×MDPI = 360x240px
HDPI是1.5×MDPI = 720x480px
XHDPI是2×MDPI = 960x640px
XXHDPI是3×MDPI = 1440x960px
XXXHDPI是4×MDPI = 1920x1280px
编辑:
我会建议使用洛蒂为开机画面,如果你在2019年阅读本
Answer 3:
肖像
LDPI:200x320px
MDPI:320x480像素的
华电国际:480x800px
XHDPI:720px1280px
景观
LDPI:320x200px
MDPI:480x320px
华电国际:800x480px
XHDPI:1280x720像素
Answer 4:
我已经搜查了最好的和最简单的答案,使9修补图像。 现在让9修补图像是最简单的任务。
从https://romannurik.github.io/AndroidAssetStudio/index.html你可以为所有分辨率的9补丁图像- XHDPI,华电国际,MDPI,LDPI轻轻一重击。
Answer 5:
使用PNG是不是一个好主意。 实际上,它是昂贵的,只要表现而言。 您可以使用XML绘制的文件,例如, Facebook的背景 。
这将帮助你顺利,加快你的表现,并为标志使用0.9补丁图像。
Answer 6:
Density buckets
LDPI 120dpi .75x
MDPI 160dpi 1x
HDPI 240dpi 1.5x
XHDPI 320dpi 2x
XXHDPI 480dpi 3x
XXXHDPI 640dpi 4x
px / dp = dpi / 160 dpi
Answer 7:
就我而言,我使用的列表绘制在style.xml。 有了图层列表绘制,你只需要为所有的屏幕尺寸一个PNG。
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/flash_screen</item>
<item name="android:windowTranslucentStatus" tools:ignore="NewApi">true</item>
</style>
和flash_screen.xml在绘制文件夹中。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white"></item>
<item>
<bitmap android:src="@drawable/background_noizi" android:gravity="center"></bitmap>
</item>
“background_noizi”是png在绘制文件夹中。 我希望它帮
Answer 8:
前段时间我创建了一个Excel文件支持的维度
希望这将是有帮助的人
说实话,我失去了主意,但它是指另一个屏幕功能的大小(不仅密度)
https://developer.android.com/guide/practices/screens_support.html
请告诉我,如果有一些失误
链接1:dimensions.xlsx
链接2:dimensions.xlsx
Answer 9:
**如果你正在寻找屏幕上的细节于各种主要设备**
去material.io