man*_*urt 86 android android-image android-screen-support android-resources
我需要澄清一些关于我的应用程序的图像资产的疑问,
如果我在xml文件中指定某事物[图像视图]的高度为50倾角高度
我应该从资源文件夹中选择哪种类型的屏幕?
drawable, hdpi, ldpi, mdpi, xhdpi,
Run Code Online (Sandbox Code Playgroud)
拥有50像素高度的图像,
与基本图像相比,更大,更小尺寸图像的百分比是多少,
就像在iOS中一样,@ 2x,实际上是图像大小的2倍,并且以编程方式表示正常大小,
谢谢!
kco*_*ock 369
mdpi是参考密度 - 即mdpi显示器上的1 px 等于1 dip.资产规模比率为:
ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi
0.75 | 1 | 1.33 | 1.5 | 2 | 3 | 4
Run Code Online (Sandbox Code Playgroud)
虽然tvdpi除非您专门针对Google TV或原始Nexus 7进行开发,否则您并不需要担心- 但即使Google建议只使用hdpi资产.
这意味着如果你正在制作48dip图像并计划支持xxhdpi resolution,你应该从144px图像开始(如果你想要xxxhdpi的本机资源,则为192px)并为密度制作以下图像:
ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi
36 x 36 | 48 x 48 | 64 x 64 | 72 x 72 | 96 x 96 | 144 x 144 | 192 x 192
Run Code Online (Sandbox Code Playgroud)
而这些应该在任何设备上显示在大致相同的尺寸,只要您放置在这些密度的特定文件夹(例如drawable-xhdpi,drawable-hdpi等)
作为参考,这些像素密度为:
ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi
120 | 160 | 213 | 240 | 320 | 480 | 640
Run Code Online (Sandbox Code Playgroud)
Ben*_*ten 22
根据kcoppock的回答,我创建了以下shell脚本,自动将所有图像调整为正确的大小,并将它们复制到相应的Android drawable-* - 文件夹中!
创建一个shell脚本并粘贴以下代码:
createAndroidImages.sh
#!/bin/bash
read -p "Please enter the subfolder of the original images? " folder
read -p "How many DP (width) should the image have? " dp
for i in $(find $folder/. -type f -name "*[A-Z]*"); do mv "$i" "$(echo $i | tr A-Z a-z)"; done
mkdir drawable-ldpi
mkdir drawable-mdpi
mkdir drawable-tvdpi
mkdir drawable-hdpi
mkdir drawable-xhdpi
mkdir drawable-xxhdpi
mkdir drawable-xxxhdpi
cp $folder/* drawable-ldpi/
cp $folder/* drawable-mdpi/
cp $folder/* drawable-tvdpi/
cp $folder/* drawable-hdpi/
cp $folder/* drawable-xhdpi/
cp $folder/* drawable-xxhdpi/
cp $folder/* drawable-xxxhdpi/
sips -Z $(echo $dp*3/4 | bc) drawable-ldpi/*
sips -Z $(echo $dp | bc) drawable-mdpi/*
sips -Z $(echo $dp*4/3 | bc) drawable-tvdpi/*
sips -Z $(echo $dp*3/2 | bc) drawable-hdpi/*
sips -Z $(echo $dp*2 | bc) drawable-xhdpi/*
sips -Z $(echo $dp*3 | bc) drawable-xxhdpi/*
sips -Z $(echo $dp*4 | bc) drawable-xxxhdpi/*
Run Code Online (Sandbox Code Playgroud)
将您的脚本放在一个文件夹中,将原始图像放在子文件夹中,例如:
/
.. createAndroidImages.sh
.. originalImages/
....a123.png
....b456.png
Run Code Online (Sandbox Code Playgroud)
在终端中运行shell脚本: sh createAndroidImages.sh
要将创建的图像直接复制到Android Studio项目:
cp -R drawable-* ~/AndroidStudioProjects/ESCRating/app/src/main/res/
Run Code Online (Sandbox Code Playgroud)
你完成了!希望这有助于某人!
PS请注意,原始图像的宽度至少应为dpi的四倍,而不是dpi所需的宽度(例如4(因子xxxhdpi)*30dpi => 120px),以获得最佳效果.
| 归档时间: |
|
| 查看次数: |
70049 次 |
| 最近记录: |