IT story

Android 이미지 및 자산 크기 정보

hot-time 2020. 9. 12. 11:31
반응형

Android 이미지 및 자산 크기 정보


내 앱의 이미지 자산에 대한 의심을 명확히해야합니다.

xml 파일에서 [이미지보기] 높이가 50 dip 높이라고 지정하면

리소스 폴더에서 어떤 유형의 화면을 선택해야합니까?

drawable, hdpi, ldpi, mdpi, xhdpi,

높이가 50 픽셀 인 이미지를 가지려면

기본 이미지에 비해 크고 작은 이미지의 비율은 얼마입니까?

iOS에서 @ 2x는 말 그대로 이미지 크기의 2 배이고 프로그래밍 방식으로 정상 크기라고 말합니다.

감사!


mdpi즉, mdpi디스플레이의 1px 는 1 dip과 같습니다. 자산 확장 비율은 다음과 같습니다.

ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi
0.75 | 1    | 1.33  | 1.5  | 2     | 3      | 4

tvdpiGoogle TV 또는 원래 Nexus 7을 위해 특별히 개발하지 않는 한 걱정할 필요는 없지만 Google에서도 단순히 hdpi자산을 사용하는 것이 좋습니다 .

이것이 의미하는 바는 48dip 이미지를 수행 중이고 최대 xxhdpi resolution.

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

그리고이 당신이 밀도 특정 폴더에 (예를 들어, 이러한 배치 한, 어떠한 장치에 거의 같은 크기로 표시됩니다 drawable-xhdpi, drawable-hdpi등)

참고로 이들의 픽셀 밀도는 다음과 같습니다.

ldpi  | mdpi  | tvdpi  | hdpi  | xhdpi  | xxhdpi  | xxxhdpi
120   | 160   | 213    | 240   | 320    | 480     | 640

를 기반으로 kcoppock 폴더 - 대답의 나는 자동으로 올바른 크기로 모든 이미지의 크기를 조정하고이 각각의 안드로이드 drawable- *에 복사하려면 다음 쉘 스크립트를 만들었습니다!

셸 스크립트를 만들고 다음 코드를 붙여 넣습니다.

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/*

스크립트를 폴더에 넣고 원본 이미지를 하위 폴더에 넣습니다. 예 :

/
.. createAndroidImages.sh
.. originalImages/
....a123.png
....b456.png

터미널에서 쉘 스크립트를 실행하십시오. sh createAndroidImages.sh

To copy the created images directly to your Android Studio Project:

cp -R drawable-* ~/AndroidStudioProjects/ESCRating/app/src/main/res/

You're done! Hope this helps someone!

P.S. Please note that the original images should have at least four times the width in pixels, than the desired width in dpi (e.g. 4 (factor xxxhdpi) * 30dpi => 120px) for optimal results.


kcoppock did a great job explaining Andorid screen densities. I just would like to add one more point regarding the original question.

Android Tablet launcher icon uses one density bucket up.

According to Google's developer Nick Butcher's Google+ post

The gorgeous screen on the Nexus 10 falls into the XHDPI density bucket. On tablets, Launcher uses icons from one density bucket up [0] to render them slightly larger. To ensure that your launcher icon (arguably your apps most important asset) is crisp you need to add a 144*144px icon in the drawable-xxhdpi or drawable-480dpi folder.

Find source here


Here is my calculations for upscaling and scaling down of images for android-

ldpi (120 dpi, Low density screen) - 36px x 36px (0.19) (1)

mdpi (160 dpi, Medium density screen) - 48px x 48px (0.25) (1.33)

hdpi (240 dpi, High density screen) - 72px x 72px (0.38) (2)

xhdpi (320 dpi, Extra-high density screen) - 96px x 96px (0.5) (2.67)

xxhdpi (480 dpi, Extra-extra-high density screen) - 144px x 144px (0.75) (4)

xxxhdpi (640 dpi, Extra-extra-extra-high density screen) - 192px x 192px (1.0) (5.33)

My short article is helpful to create image resources using imagemagick, when there are multiple images.

참고URL : https://stackoverflow.com/questions/11581649/about-android-image-and-asset-sizes

반응형