Có cách nào để tạo các bản vẽ xxhdpi, xhdpi, hdpi, mdpi và ldpi từ một hình ảnh tỷ lệ lớn không?


271

Có cách nào để tự động tạo các bản vẽ xxhdpi, xhdpi, hdpi, mdpi và ldpi từ một hình ảnh tỷ lệ lớn không? Ví dụ: giả sử rằng tôi có hình ảnh 512x512 và tôi muốn có các phiên bản khác nhau của hình ảnh này cho các độ phân giải màn hình khác nhau được Android hỗ trợ trong các thư mục phù hợp.


3
Trong trường hợp bạn đang sử dụng Windows: github.com/delight-im/AndroidDrawableResizer
caw

Tôi đã thực hiện công cụ này trên Android, bạn đặt ảnh của mình vào thư mục tải xuống của điện thoại, sau đó chọn kích thước tham chiếu & dpi và nó chuyển đổi thành tất cả mật độ và tạo các thư mục phù hợp: play.google.com/store/apps/details ? id = fr.arnaudguyon.dpiresizer
Arnaud SmartFun 2/11/2016

Kiểm tra câu trả lời này để biết phương pháp nhanh chóng và dễ dàng - stackoverflow.com/a/40830399/4015856
Asim KT

4
Trong Android Studio, nhấp chuột phải vào res -> New -> Image Asset, chọnLauncher Icons (legacy)
onmyway133

Câu trả lời:


191

Tùy chọn # 1: Chỉ cần gửi các ngăn kéo -xxhdpivà để Android hạ thấp chúng cho bạn khi chạy (nhược điểm: sẽ chỉ hoạt động trên các thiết bị khá gần đây, nơi -xxhdpiđược biết đến).

Tùy chọn # 2: Sử dụng Android Asset Studio để lấy mẫu cho bạn.

Tùy chọn # 3: Tự động hóa quy trình trong trình chỉnh sửa đồ họa, theo câu trả lời của ssantos .

Tùy chọn # 4: Viết kịch bản cho bạn một giải pháp, sử dụng cái gì đó như ImageMagick.

Tùy chọn # 5: Sử dụng thợ làm hình ảnh


Là vận chuyển chỉ xxhdpi và xhdpi là một thay thế? Tôi giả định rằng các thiết bị không hiểu xxhdpi sẽ giảm giá từ xhdpi
Juan Campa

@Juan: "Có phải vận chuyển chỉ xxhdpi và xhdpi là một sự thay thế?" - chỉ khi bạn minSdkVersion8 hoặc cao hơn. Nếu bạn đang cố gắng hỗ trợ các thiết bị cũ hơn thế, bạn cũng sẽ cần một thiết bị hdpi, vì không tồn tại xhdpihoặc không xxhdpitồn tại cho API Cấp 7 trở xuống. Bây giờ, cho dù bạn có thích vẻ ngoài của các đồ rút xuống của bạn hay không thì lại là một vấn đề khác ...
CommonsWare

Về lựa chọn số 1 và ý kiến ​​của bạn về việc xxhdpikhông tồn tại, tôi không tin rằng điều này là chính xác. Trong nội bộ, Android sử dụng số DPI (160, 320, 480, v.v.), chứ không phải chuỗi, cho vòng loại tài nguyên. Nếu DPI hệ thống là 160 và nó tìm thấy hình ảnh 640, nó sẽ giảm mẫu của nó xuống 4, mà không cần phải "biết về" vòng loại văn bản của nó. Chúng tôi đã chuyển tài nguyên chỉ tồn tại trong xxxhdpithư mục (Android 4.3) sang thiết bị Android 2.3.
Matt Quigley

tùy chọn 2 không hỗ trợ xxxhdpi
Tên hiển thị

2
Tùy chọn # 4: Giải pháp tập lệnh với ImageMagick tại đây
ndromao

158

Cập nhật :

Các plugin được đề cập trước đây đã bị bỏ rơi, nhưng nó dường như có một ngã ba cập nhật ở đây .

Câu trả lời cũ :

Tôi sử dụng plugin Android Studio có tên Android Drawable Importer:

nhập mô tả hình ảnh ở đây

Để sử dụng nó sau khi cài đặt, nhấp chuột phải vào thư mục res / drawable của bạn và chọn New > Batch Drawable Import:

Sau đó chọn hình ảnh của bạn thông qua +nút và đặt Độ phân giải thành xxhdpi (hoặc bất kỳ độ phân giải của hình ảnh nguồn của bạn là gì).


13
Cảm ơn, nhưng tôi đã sử dụng 'Nhập hàng loạt có thể rút được' thay vì 'Thu nhỏ có thể rút được'.
Malder

Như @ user123456 nói rằng tôi phải sử dụng Batch Drawable vì Scaled Drawable không xuất hiện
lujop

1
Plugin này dường như không còn được duy trì - lần cam kết cuối cùng vào năm 2016 ( github.com/winterDroid/ ,), báo cáo sự cố mà không có bất kỳ phản hồi nào ...
giảm hoạt động

3
Tôi đã cố gắng phục hồi plugin đáng yêu này theo AS 3.6 và có thể, mặc dù chưa được kiểm tra, theo AS 3.5.
thua cuộc tồi tệ

2
@PrajwalW, câu trả lời cập nhật để đề cập đến ngã ba cập nhật.
Adam Johns

97

Cập nhật:

Cách cài đặt plugin cũ không còn hiệu quả nữa nhưng một nhánh của plugin gốc vẫn hoạt động ở đây . Bạn vẫn có thể làm theo câu trả lời này sau khi cài đặt plugin theo cách thủ công.

Nếu bạn muốn cách nhanh chóng và dễ dàng, hãy truy cập https://www.img-bak.in/ hoặc https://appicon.co/ họ cũng làm việc với iOS.

Tôi sẽ cố gắng giải thích quá trình trong bước cơ bản khôn ngoan, để nó sẽ đơn giản để hiểu cho bất cứ ai.

1. Cài đặt plugin theo cách thủ công như được cung cấp trong ReadME

2. Khởi động lại studio android

3. Như bạn có thể thấy trong bản screencap sau đây, chỉ có một drawable ở đây

nhập mô tả hình ảnh ở đây

4. Bây giờ, nhấp chuột phải vào thư mục có thể vẽ và điều hướng đến Mới> Nhập hàng loạt có thể rút được

nhập mô tả hình ảnh ở đây

8. Bây giờ bấm vào biểu tượng thêm

5. Bây giờ chọn hình ảnh "Đơn" mà bạn muốn các biến thể khác nhau của hình vẽ.

nhập mô tả hình ảnh ở đây

6. Bây giờ chọn kích thước của hình ảnh gốc. Nếu hình ảnh gốc là xxhdpi như trong trường hợp của tôi, hãy chọn "xxhdpi" làm "Resoultion nguồn".

7. Bây giờ nhấn ok rồi ok một lần nữa .. và sau đó sẽ mất vài giây và sau đó bạn sẽ nhận được tất cả các biến của các drawable.nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


3
Plugin này là tốt, nhưng kích thước ban đầu phải có đủ độ phân giải để giữ chất lượng tốt cho tài sản. Tôi đoán tốt hơn là yêu cầu nhà thiết kế ban đầu cho các tài sản xxxhdpi và sau đó thu nhỏ chúng xuống.
narko

@LaxmanBhattarai, tôi muốn hỗ trợ ứng dụng của mình chỉ trong cảnh quan chỉ trong máy tính bảng. Vì vậy, theo câu trả lời của bạn, tôi nên sử dụng thư mục nào cho hình ảnh để hỗ trợ tất cả các thiết bị máy tính bảng? Bạn có thể vui lòng cho tôi biết ?
Hiren Patel

developer.android.com/training/basics/supporting-devices/, vui lòng tham khảo tài liệu này và tôi nghĩ rằng việc nối thêm vào cuối thư mục có thể dẫn đến bố cục ngang
erluxman

Tùy chọn "Trình nhập gói biểu tượng có thể vẽ" sử dụng các biểu tượng Vật liệu / Android và giải quyết cho tôi. Cảm ơn vì tiền boa @LaxmanBhattarai
Francis

1
Plugin này dường như không còn được duy trì - lần cam kết cuối cùng vào năm 2016 ( github.com/winterDroid/ ,), báo cáo sự cố mà không có bất kỳ phản hồi nào ...
giảm hoạt động

67

Sử dụng một dịch vụ trực tuyến như Image Baker .

thợ làm hình ảnh

Thật đơn giản. Tải lên hình ảnh và tải xuống các tài sản được xử lý cho cả Android và iOS.

Hình ảnh tải về

Lưu ý: Image Baker là một dịch vụ miễn phí được tạo bởi bạn tôi và tôi.


1
Đó là làm việc cho tôi. Tôi nghĩ rằng có một tiện ích phản hồi mà bạn có thể nói với các nhà phát triển về vấn đề bạn đang gặp phải.
Asim KT

5
vâng, nó không hoạt động. nó vẫn "tải lên hình ảnh"
batmaci

1
Nó đang hoạt động. Vì nó là một máy chủ dịch vụ miễn phí có thể chậm. (công việc đơn giản để dọn dẹp sau 24 giờ) Hãy thử lại sau một ngày hoặc cho các nhà phát triển biết.
Asim KT

Tại sao công việc cron được chạy một lần 24 giờ thay vì chạy nó thường xuyên hơn để ngăn chặn nó bị mắc kẹt? Có phải là một hạn chế của một dịch vụ miễn phí? Ngoài ra, tại sao nó có "Chúng tôi cần khoảng 100 đô la / năm để chạy dịch vụ" nếu nó đang chạy trên một máy chủ miễn phí (chi phí dev?).
giảm hoạt động

1. Đó là một hạn chế của dịch vụ miễn phí 2. Nếu nó miễn phí thì không cần tiền. (chỉ tính phí tên miền)
Asim KT

40

Tập lệnh bash sử dụng ImageMagick (convert) theo câu trả lời của CommonsWare:

Đã thêm tạo thư mục và kiểm tra đối số nhờ Kishan Vaghela

#!/bin/sh
#---------------------------------------------------------------
# Given an xxhdpi image or an App Icon (launcher), this script
# creates different dpis resources and the necessary folders
# if they don't exist
#
# Place this script, as well as the source image, inside res
# folder and execute it passing the image filename as argument
#
# Example:
# ./drawables_dpis_creation.sh ic_launcher.png
# OR
# ./drawables_dpis_creation.sh my_cool_xxhdpi_image.png
#
# Copyright (c) 2016 Ricardo Romao.
# This free software comes with ABSOLUTELY NO WARRANTY and
# is distributed under GNU GPL v3 license. 
#---------------------------------------------------------------

if [ $# -eq 0 ]; then
    echo "No arguments supplied"
else if [ -f "$1" ]; then
    echo " Creating different dimensions (dips) of "$1" ..."
    mkdir -p drawable-xxxhdpi
    mkdir -p drawable-xxhdpi
    mkdir -p drawable-xhdpi
    mkdir -p drawable-hdpi
    mkdir -p drawable-mdpi

    if [ $1 = "ic_launcher.png" ]; then
        echo "  App icon detected"
        convert ic_launcher.png -resize 144x144 drawable-xxhdpi/ic_launcher.png
        convert ic_launcher.png -resize 96x96 drawable-xhdpi/ic_launcher.png
        convert ic_launcher.png -resize 72x72 drawable-hdpi/ic_launcher.png
        convert ic_launcher.png -resize 48x48 drawable-mdpi/ic_launcher.png
        rm -i ic_launcher.png
    else
        convert $1 -resize 75% drawable-xxhdpi/$1
        convert $1 -resize 50% drawable-xhdpi/$1
        convert $1 -resize 38% drawable-hdpi/$1
        convert $1 -resize 25% drawable-mdpi/$1
        mv $1 drawable-xxxhdpi/$1
    fi
echo " Done"
else
    echo "$1 not found."
fi
fi

2
Kịch bản rất hữu ích! Dù sao, tôi sẽ sử dụng 67% (thay vì 66%) cho xhdpi. Đó là bởi vì tỷ lệ giữa xhdpi và xxhdpi là 2/3 mà khi nhìn theo tỷ lệ phần trăm và làm tròn cho 67. Nếu không, nếu người ta sử dụng 66 và nói độ phân giải của đầu vào là xxhdpi = 96 * 96, người ta sẽ nhận được xhdpi = 63 * 63 thay vì 64 * 64.
HaimS

Chúng ta nên tạo dir nếu không tìm thấy
Kishan Vaghela

Vui lòng kiểm tra tập lệnh được cập nhật gist.github.com/Kishanjvaghela/8ec54f66c322d8d6940b4c0d1a58098d
Kishan Vaghela

Rất hữu ích, và hoạt động tốt. Tôi đoán bạn đang thiếu một fi ở cuối. Cung cấp lỗi trên bash 4.3.11
Mijo

Bạn nói đúng @Mijo, Kishan thực sự đã có lần cuối cùng trong ý chính của mình, và tôi đã gỡ bỏ nó, thật ngốc nghếch
lần thứ

23

BIÊN TẬP:

Trang web này được gọi là appicon.co


Tôi thường sử dụng tài sản.codly.io
Nó tạo ra các tài sản cục bộ trong trình duyệt của bạn, không tải lên, không tải xuống.

nhập mô tả hình ảnh ở đây


Nó chỉ chấp nhận "hình ảnh biểu tượng ứng dụng (1024x1024" làm đầu vào.
giảm hoạt động

2
@MateuszKonieczny Trang web được cập nhật, Có một tab khác cho các hình ảnh được gọi là Bộ hình ảnh cho phần còn lại của hình ảnh.
A.Zidan

Đối với Android, nó chỉ tạo biểu tượng ứng dụng tức là thao tác Nó cũng tạo các biểu tượng có thể vẽ được
Nivrutti Pawar

Chọn kích thước cơ sở thiết kế của bạn trong trang web đó là gì ?? Chúng ta nên chọn 3x hay 4x ??
K Pradeep Kumar Reddy

13

Chỉ cần tìm một cách dễ dàng để làm điều đó trong Android Studio mới:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


KinhKohn, và những gì hơn nữa? Chúng ta có thể chọn một tài nguyên khác?
CoolMind 16/2/2016

Nếu bạn muốn tải lên bất kỳ hình ảnh nào bạn muốn, chỉ cần sử dụng tùy chọn duyệt .. nếu đây là ý bạn.
Kohn1001

Có nó hoạt động. Nhưng có vẻ như nó làm cho các biểu tượng màu cần thiết chỉ trong một loại tài sản "Biểu tượng Trình khởi chạy". Vì vậy, nó cũng thay thế một biểu tượng launcher. Và đặt hình ảnh vào các thư mục mipmap.
CoolMind

1
Lưu ý rằng nó chỉ phù hợp nếu bạn muốn thêm một biểu tượng.
giảm hoạt động

8

Tôi sử dụng một công cụ có tên Android Icon Set trong Eclipse cho các biểu tượng tiêu chuẩn như Launcher, ActionBar, biểu tượng Tab và biểu tượng thông báo. Bạn có thể khởi chạy nó từ Tệp -> Mới -> Khác .. -> Android -> Bộ biểu tượng Android. Phần tốt nhất là bạn có thể chọn bất kỳ tệp nào từ máy tính của mình và nó sẽ tự động đặt tất cả các hình ảnh có kích thước tiêu chuẩn vào thư mục dự án của bạn.

nhập mô tả hình ảnh ở đây


... bạn cũng có thể sử dụng trang web tương đương với công cụ này: android-ui-utils.googlecode.com/hg/asset-studio/dist/ trộm (công cụ được mô tả trong câu trả lời này là tốt hơn, vì nó được tích hợp trực tiếp vào Eclipse và sẽ tự động đặt các biểu tượng vào các thư mục chính xác).
Booger

Nó có hỗ trợ "Biểu tượng chung" không?
Ali Behzadian Nejad

Các công cụ web dường như hỗ trợ nó. Tôi cũng chưa sử dụng web. Bạn có thể kiểm tra liên kết này: android-ui-utils.googlecode.com/hg/asset-studio/dist/ trộm
Nitin Sethi

7
  1. Chỉ cần sử dụng https://romannurik.github.io/AndroidAssetStudio/index.html . Nó có thể tạo một tập hợp các biểu tượng từ một hình ảnh, sau này bạn có thể tải xuống một tệp zip.
  2. Hoặc tải xuống ứng dụng Windows tại https://github.com/redwarp/9-Patch-Resizer/release (không cần cài đặt) và mở biểu tượng.
  3. Ngoài ra, bạn có thể sử dụng một plugin Android Drawable Importer, xem câu trả lời ở trên. Bởi vì nó bị bỏ rơi, cài đặt dĩa. Xem lý do tại sao Trình nhập có thể rút ra của Android bỏ qua lựa chọn trong AS 3.5 trở đi hoặc https://github.com/Vincent-Loi/android-drawable-importer-intellij-plugin .
  4. https://appicon.co/#image-sets .

2
Cho đến khi tác giả của Trình nhập có thể rút được của Android không còn là AWOL, tôi đã gõ một zip cài đặt tạm thời cho các bản phát hành studio Android sau này.
thua cuộc tồi tệ

@BadLoser, tôi đã thấy chủ đề của bạn, cảm ơn! Tôi hiếm khi sử dụng plugin này, nó có một số lỗi, vì vậy nếu chúng xảy ra lần nữa, sẽ thử giải pháp của bạn.
CoolMind

Vâng - văn bản chắc chắn trên tường cho điều cũ này - nhưng cho đến khi AS Resource Manager hoàn toàn làm sạch hành động của nó!
thua cuộc tồi tệ

4

Sử dụng tài sản hình ảnh Android Studio

Đi đến:

 Project>res --> right click

 new> image asset

Sau đó đặt:

-Icon type: Launcher Icons
-Asset type: Image
-Path: the/path/to/your/image
-Trim: No
-Padding: 0%
-Shape: None
-Effect: None

Chọn: Tiếp theo> Kết thúc.

Now you will have your icon in the correct resolutions.

Ví dụ trực quan:

EDIT: Tôi khuyên bạn nên sử dụng hình ảnh SVG để tạo Vector Drawables, sau đó sử dụng chúng trong một khung vẽ để thay đổi kích thước của chúng thành kích thước chính xác hoặc chỉ cần thay đổi DP.

Bạn có thể lấy các biểu tượng mặc định từ Google hoặc chỉ cần tạo riêng của bạn

 Project>res --> right click
 new> vector asset

Sau đó đặt:

-Asset type: Local file (SVG, PSD)
-Path: the/path/to/your/image
-Size: check Override to keep your aspect ratio.
-Chek enable auto mirroring for RTL Layout.

Chọn: Tiếp theo> Kết thúc.

Bây giờ bạn sẽ có biểu tượng của bạn và bạn sẽ có thể thay đổi kích thước, màu sắc vv ... nhập mô tả hình ảnh ở đây


2

Ngoài ra còn có khả năng sử dụng Vector Asset Studio kết hợp với Đồ họa vectơ có thể mở rộng (SVG) . Android Studio sẽ xử lý phần còn lại cho bạn. Như tài liệu chính thức nói:

Vector Asset Studio giúp bạn thêm các biểu tượng vật liệu và nhập các tệp Đồ họa Vector có thể mở rộng (SVG) vào dự án ứng dụng của bạn dưới dạng tài nguyên có thể vẽ được. So với hình ảnh raster, các hình vẽ vector có thể làm giảm kích thước ứng dụng của bạn và được thay đổi kích thước mà không làm giảm chất lượng hình ảnh. Chúng giúp bạn dễ dàng hỗ trợ các thiết bị Android khác nhau hơn với các kích thước và độ phân giải màn hình khác nhau vì bạn có thể hiển thị một vectơ có thể vẽ trên tất cả chúng.

Tôi coi đây là cách tiếp cận trong tương lai.

Mục menu của Vector Asset Studio

Ảnh chụp màn hình của Vector Asset Studio


2

Tôi đã viết một tập lệnh Photoshop để tạo tập tin png ic_launcher từ tập tin PSD. Chỉ cần kiểm tra ic_launcher_exporter .

Để sử dụng, chỉ cần tải xuống và sử dụng tập lệnh từ photoshop.

nhập mô tả hình ảnh ở đây

Và cấu hình nơi bạn muốn tạo tập tin đầu ra.

nhập mô tả hình ảnh ở đây


1

Không phải tự động 100%, nhưng tôi tiết kiệm rất nhiều thời gian sử dụng Photoshop Action .

Chẳng hạn, các xhdpitài sản đã cho , sau đó tôi tạo một tác vụ cho hdpimdpi, tỷ lệ tương ứng là 66,66% và đến 44,44%. Sau đó, tôi chạy các hành động cho tất cả các hình ảnh trên thư mục xhdpi.

Đối với hình ảnh 512x512, tất cả những gì bạn phải làm là tính tỷ lệ phần trăm bạn nên chia tỷ lệ hình ảnh của mình để đạt được xxhpi, xhdpi, hdpi và mdpi.


0

Tôi đã sử dụng giải pháp theo cách này trong chuỗi này và thật dễ dàng để làm việc với plugin Trình vẽ có thể vẽ Android

Nếu bạn đang sử dụng Android Studio trên MacOS, chỉ cần thử bước này để vào:

  • Nhấp vào menu thanh Android Studio, sau đó chọn Tùy chọn hoặc nhấn nút Command +,
  • Sau đó chọn Plugin
  • Nhấp vào Duyệt kho
  • Viết trong phần tìm kiếm của nhà nhập khẩu Android có thể vẽ
  • Nhấp vào nút Cài đặt
  • Và sau đó hộp thoại Khởi động lại hiển thị, chỉ cần khởi động lại Android Studio

Sau khi bạn cài đặt thành công plugin, để làm việc, plugin này chỉ cần nhấp vào tạo menu mới và sau đó chọn Batch Drawable Import . Sau đó nhấp vào nút cộng aka nút Thêm và đi chọn tệp của bạn để có thể vẽ được. Và sau đó chỉ cần nhấp vào ok và ok, drawable đã làm cho tất cả chúng.

Nếu bạn nhầm lẫn với từ của tôi, chỉ cần xem hướng dẫn hình ảnh từ learningmechine .


2
Không có Android Drawable Importerplugin trên thị trường nữa. Tôi đã thử Android Asset Importer but it crasheskhi tôi cố mở nó (Android Studio 3.6.1). Tôi đã kết thúc bằng appicon.co
flawyte

-1

Một plugin đơn giản trong Android sẽ giúp bạn Bước 1. Chuyển đến Cài đặt Bước 2. Nhấp vào Plugin Bước 3. Tìm kiếm Trình nhập khẩu có thể vẽ Android Bước 4. Cài đặt plugin và khởi động lại

Sử dụng như thế nào?

Chuyển đến Tệp> Mới> Nhập hàng loạt

Thưởng thức


Không còn Android Drawable Importerplugin nào trên thị trường Android Studio.
Micer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.