2015-05-30 20 views
3

我真的不明白如何創建9patch圖像,但我發現了一個正在處理我的片段的圖像。問題是邊框外的顏色不是背景的顏色。我嘗試將圖像中的像素顏色更改爲背景顏色,但生成的圖像不再有效。 這是工作的形象,但有錯誤的顏色:如何修改9patch圖像Android的顏色?

http://i.stack.imgur.com/cJBfV.png

我怎樣才能改變這種狀況是境外,或者我怎麼能建立這樣一個新的9patch圖像的像素的顏色那?

+0

http://radleymarx.com/blog/simple-guide-to-9-patch/ –

回答

2

您可以使用Android SDK提供的Draw 9-patch工具編輯9修補程序。然而,由於您的圖像已經包含9個可伸縮區域,因此您可以在圖像編輯器(如GIMP或Photoshop)中編輯顏色。確保將圖像重命名爲使用.9.png擴展名,以便將其識別爲9修補圖像。

http://developer.android.com/tools/help/draw9patch.html

+0

我找到了draw9patch,但我不知道如何修改顏色.. –

+1

使用GIMP或任何圖形編輯器。 –

0

九補丁是正常的png文件。任何能夠顯示九個補丁的軟件對它們的解釋都是不同的。換句話說,你可以用任何png編輯器編輯它們。

還有一些專用工具(例如:在android sdk/tools/draw9patch中)以不同的尺寸顯示結果。

那他們怎麼解釋呢?

第一行和最後一行+九像素圖像中像素的第一列和最後一列僅包含黑色或透明像素(並且不顯示那些第一/最後一行/列)。

交點)左邊和上邊的黑色像素定義了可伸縮區域。 (可以有多個)

交點)右側和底部邊緣的黑色像素定義了內容區域。 (你只能有一個)

+0

我改變了一些像素的顏色通過Photoshop和我保存編輯後的圖像作爲PNG,但是當我修改名稱是.9.png android無法找到文件 –

+0

你是什麼意思「無法找」 ? – ben75

+1

在android - >無法找到您的繪圖文件夾中的文件。這發生在我修改了Photoshop中的顏色 –

3

你可以使用DrawableCompat與supprot v4。

現在,我會告訴你用這種方法改變烤麪包的顏色。如你所知,烤麪包背景是一個名爲toast_frame.9.png一個9patch可繪製(你可以找到它在你的SDK目錄)

驗證碼:

Toast toast = Toast.makeText(this, content, Toast.LENGTH_SHORT); 
    toastView.findViewById(android.R.id.message); 
    View toastView = toast.getView(); 
    Drawable toastBg = toastView.getBackground(); 
    Drawable drawable = tintDrawable(toastBg, ColorStateList.valueOf(Color.RED)); 
    toastView.setBackground(drawable); 
    toast.setView(toastView); 
    toast.show(); 

public Drawable tintDrawable(Drawable drawable, ColorStateList colors) { 
    final Drawable wrappedDrawable = DrawableCompat.wrap(drawable); 
    DrawableCompat.setTintList(wrappedDrawable, colors); 
    return wrappedDrawable; 
} 

,如果您想了解更多,請點擊此:http://www.race604.com/tint-drawable/

+1

你是一個天才!謝謝 – Antonio