2011-12-15 32 views
9

Tôi có một gradient Tôi thực sự thích nhưng tôi tạo ra nó sử dụng XML drawable:Làm cách nào để lưu, xuất hoặc chuyển đổi Android XML Drawable dưới dạng tệp hình ảnh PNG?

<gradient 
    android:startColor="#DD181C18" 
    android:endColor="#809C7D5A" 
    android:angle="90"/> 

gì sẽ là một cách dễ dàng để tạo này cho một người png hay cái gì đó tương tự?

Những gì tôi đang thực sự tìm kiếm là: một công cụ mà có thể và hướng dẫn sử dụng công cụ đó để làm gradient sử dụng định dạng #aarrggbb vì nó là đầu vào alpha/màu (góc 90 độ, góc nói chung, sẽ là một thêm).

Cảm ơn bạn đã được trợ giúp.

EDIT: D'oh! Tôi hoàn toàn chỉ nhận ra ImageMagick sẽ có thể thực hiện việc này. Tôi sẽ đăng các mã đó là câu trả lời của tôi ngay, trừ khi ai đó muốn đánh bại tôi với nó và nhận được toàn bộ tiền thưởng!

+0

hiển thị nó trong bố trí trống và sử dụng ảnh chụp nhanh từ tính năng nhật thực hoặc chạy trên thiết bị và thực hiện theo quy trình tương tự để có hình ảnh có độ phân giải cao – ingsaurabh

+0

Trừ khi, tôi thiếu thứ gì đó ... điều này cũng sẽ không giữ được độ trong suốt. – TryTryAgain

+0

điều gì về việc đăng mã? :) – bluszcz

Trả lời

3

Cuối cùng, nó là một lớp lót sử dụng ImageMagick!

Tôi không thể tin rằng mình không nghĩ đến việc sử dụng ImageMagick trước đây, Duh !!!

convert -size 480x84 gradient:'rgba(156, 125, 90, 0.52)'-'rgba(24, 28, 24, 0.86)' tmp.png 

Để tham khảo, tôi đã sử dụng điều này để tạo tệp hình ảnh .png bằng cách sử dụng giá trị AARRGGBB của Android XML có thể vẽ được. ImageMagick FTW !!!

Cảm ơn mọi người đã nhập.

3

Sử dụng chương trình như photoshop hoặc paint.Net - cả hai đều có công cụ tô màu và nên cho phép bạn đặt màu theo cùng định dạng như bạn có ở đó.

+0

Tôi chỉ có quyền truy cập miễn phí và OSS và OS. Tôi đã không tìm ra cách để đạt được điều này với GIMP. Một lần nữa, gradient không phải là vấn đề, thay vào đó, việc bảo toàn độ trong suốt với gradient là vấn đề tôi đang gặp phải. – TryTryAgain

+1

Paint.Net miễn phí và bảo toàn tính minh bạch. – Boude

1

Bạn cũng có thể tạo hoạt động chỉ với độ dốc làm nền và không có gì khác trên màn hình.

Chạy ứng dụng trên trình giả lập hoặc thiết bị và sử dụng DDMS để chụp ảnh màn hình. Sau đó, bạn sẽ có PNG được hiển thị độc đáo để lưu và bạn có thể tạo bất kỳ kích thước nào bạn muốn bằng cách thay đổi kích thước màn hình của trình mô phỏng bạn đang sử dụng.

XML bạn có thể trông như thế này:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/your_gradient"> 
</LinearLayout> 
+0

Cảm ơn bạn đã gợi ý @Booger, thật không may, điều đó sẽ không bảo vệ tính minh bạch. – TryTryAgain

1

này cung cấp cho một thử:

try { 
    item.setDrawingCacheEnabled(true); 
    Bitmap bmp = item.getDrawingCache(); 
    FileOutputStream out = new FileOutputStream(filename); 
    bmp.compress(Bitmap.CompressFormat.PNG, 90, out); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

Đây item là nhóm nhìn/xem mà tôi muốn làm.

Tôi thực sự sử dụng cùng một đoạn (trừ ghi tệp) đối với một số hiển thị trên màn hình và có vẻ như giữ được độ trong suốt.

Lưu ý Về Màu sắc:

Màu sắc có thể được quy định trong việc sử dụng các giá trị thập lục phân android. Một byte (8 bit) có sẵn cho mỗi giá trị màu trong mẫu ARGB (tổng 32 bit). A là viết tắt của Alpha, R là viết tắt của Red, G cho GreenB cho Blue. Mỗi thành phần có thể có giá trị giữa (0, 255). Lưu ý rằng:

decimal 0 = hex 0x00 
decimal 255 = hex 0xFF 

Vì vậy, nếu bạn muốn có một màu trắng với đục 'Alpha (no transparency) you would use #FFFFFFFF . For Black # FF000000 . For Grey # FF808080 80` mang đến cho bạn trung bình Grey.

Sử dụng số học thập lục phân để nhận giá trị của các màu thập phân của bạn.

AFAIK, Góc cho độ dốc hướng tâm không được tạo nên sự khác biệt nào. Hãy thử tất cả điều này trong GIMP hoặc đọc hướng dẫn GIMP.Tốt hơn vẫn nên sử dụng Photoshop nếu bạn có thể (90 ngày dùng thử phiên bản có sẵn).

+0

BTW là bạn chắc chắn gimp không thể lưu gradient với tính minh bạch? Xem nhanh http://docs.gimp.org/en/gimp-concepts-gradients.html đề xuất tạo có thể. Tiết kiệm sau đây như một hệ quả tự nhiên. –

+0

Cảm ơn, tôi khá tươi mới và không biết phải làm gì với mã đó để tạo tệp .png từ tệp xml của tôi. GIMP hoàn toàn có thể lưu một gradient với độ trong suốt. Tôi không biết DD và 80 bằng với tỷ lệ phần trăm của độ dốc AA (alpha) và cách kết hợp góc 90 độ. – TryTryAgain

+0

Tôi e rằng không có lối tắt nào ở đây. Bạn nên làm một số đọc. Đối với màu sắc, đây là lớp sơn lót ngắn và ngọt: http://www.w3schools.com/html/html_colors.asp –

Các vấn đề liên quan