จากคำตอบของ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 Studio ของคุณ:
cp -R drawable-* ~/AndroidStudioProjects/ESCRating/app/src/main/res/
เสร็จแล้ว! หวังว่านี่จะช่วยใครสักคน!
ปล. โปรดทราบว่าภาพต้นฉบับควรมีความกว้างอย่างน้อยสี่เท่าของพิกเซลมากกว่าความกว้างที่ต้องการในหน่วย dpi (เช่น 4 (factor xxxhdpi) * 30dpi => 120px) เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด