2011-12-15 149 views
9

我有一個梯度我真的很喜歡,但我使用XML創建繪製它:如何將Android XML Drawable保存,導出或轉換爲PNG圖像文件?

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

什麼是創造這一個PNG或類似的東西一個簡單的方法?

我真正要找的是: 一個工具,可以使用該工具使用#aarrggbb格式,因爲它是輸入字母/彩色(90度角,使梯度說明,一般角度,將是一個加)。

感謝您的任何幫助。

編輯:哦!我完全意識到ImageMagick應該能夠做到這一點。我會盡快發佈我的答案的代碼,除非有人想要打敗我並獲得整個賞金!

+0

顯示它從Eclipse特性空的佈局和使用圖像抓拍或設備上運行,並遵循相同的過程中獲得高分辨率圖像 – ingsaurabh 2011-12-15 12:16:25

+0

除非我失去了一些東西......這也將不保留透明度。 – TryTryAgain 2011-12-16 17:10:54

+0

發佈代碼怎麼樣? :) – bluszcz 2012-08-01 16:10:37

回答

3

它到底是用ImageMagick一個襯墊!

我不能相信我沒想到之前使用ImageMagick的,咄!

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

僅供參考,我用這個用我的Android XML繪製## AARRGGBB值來創建一個PNG圖片文件。 ImageMagick FTW!

感謝大家的輸入。

3

使用像Photoshop或Paint.Net這樣的程序 - 它們都具有漸變工具,並且應該讓您以與您在那裏相同的格式設置顏色。

1

您也可以使用漸變作爲背景創建一個活動,屏幕上不會顯示其他內容。

在模擬器或設備上運行應用程序,並使用DDMS進行屏幕捕獲。然後你將有一個很好的PNG保存,你可以通過改變你正在使用的模擬器的屏幕大小來創建你想要的大小。

你的XML看起來是這樣的:

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

試試這個:

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(); 
} 

這裏item是,我想渲染視圖/視圖組。

我實際上在屏幕渲染上使用了相同的片段(減去文件寫入),它似乎保持透明。

注意關於顏色:

顏色可以在android系統使用十六進制值來指定。一個字節(8位)可用於ARGB模式(總共32位)的每種顏色值。 A代表Alpha,R代表Red,G代表GreenB代表Blue。每個組件可以具有(0,255)之間的值。需要注意的是:

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

因此,如果你想要一個白色不透明「阿爾法(no transparency) you would use #FFFFFFFF . For Black#FF000000 . For Grey#FF808080 80`給你中間灰色。

使用十六進制算術來獲取小數顏色的值。

AFAIK,徑向漸變的角度不應該有任何區別。在GIMP中嘗試所有這些或閱讀GIMP教程。如果可以的話,最好還是使用Photoshop(90天試用版)。

相關問題