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
tvdpi
Google 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
'IT story' 카테고리의 다른 글
문자열을 정수 배열로 변환 (0) | 2020.09.12 |
---|---|
Android Studio (Gradle)에서 Apache Commons 컬렉션을 추가하는 방법 (0) | 2020.09.12 |
EditText의 Drawable 권한에 대한 onClickListener 설정 (0) | 2020.09.12 |
Java에서 사후 증가 (i ++) 및 사전 증가 (++ i) 연산자는 어떻게 작동합니까? (0) | 2020.09.12 |
Android, 캔버스 : surfaceView에있는 캔버스 (= 비트 맵)를 지우는 (내용을 삭제) 어떻게합니까? (0) | 2020.09.12 |