내 앱의 이미지 자산에 대한 의심을 명확히해야합니다.
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 의 답변을 기반 으로 모든 이미지의 크기를 자동으로 올바른 크기로 조정하고 각 Android 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
생성 된 이미지를 Android 스튜디오 프로젝트에 직접 복사하려면 :
cp -R drawable-* ~/AndroidStudioProjects/ESCRating/app/src/main/res/
끝났습니다! 이것이 누군가를 돕기를 바랍니다!
추신 : 최적의 결과를 얻으려면 원본 이미지가 원하는 dpi 너비 (예 : 4 (factor xxxhdpi) * 30dpi => 120px)보다 픽셀 너비의 4 배 이상이어야합니다.
답변
kcoppock은 Andorid 화면 밀도를 설명하는 훌륭한 작업을 수행했습니다. 원래 질문과 관련하여 한 가지 더 추가하고 싶습니다.
Android 태블릿 런처 아이콘은 하나의 밀도 버킷을 사용합니다.
Google의 개발자 Nick Butcher의 Google+ 게시물에 따르면
Nexus 10의 멋진 화면은 XHDPI 밀도 버킷에 속합니다. 태블릿에서 Launcher는 하나의 밀도 버킷 위로 [0] 아이콘을 사용하여 약간 더 크게 렌더링합니다. 런처 아이콘 (아마도 앱에서 가장 중요한 자산)을 선명하게하려면 drawable-xxhdpi 또는 drawable-480dpi 폴더에 144 * 144px 아이콘을 추가해야합니다.
여기에서 소스 찾기
답변
다음은 Android 용 이미지의 확장 및 축소에 대한 계산입니다.
ldpi (120dpi, 저밀도 화면)-36px x 36px (0.19) (1)
mdpi (160dpi, 중간 밀도 화면)-48px x 48px (0.25) (1.33)
hdpi (240dpi, 고밀도 화면)-72px x 72px (0.38) (2)
xhdpi (320dpi, 초 고밀도 화면)-96px x 96px (0.5) (2.67)
xxhdpi (480dpi, 초초 고밀도 화면)-144px x 144px (0.75) (4)
xxxhdpi (640dpi, 초 초초 고밀도 화면)-192px x 192px (1.0) (5.33)
내 짧은 기사 는 이미지가 여러 개인 경우 imagemagick을 사용하여 이미지 리소스를 만드는 데 도움이됩니다.