2013-01-11 68 views
5

背景繪製的getBackgound()返回BitmapDrawable得到的觀點

Log.d(null,"drawable: " + v.getBackground()); 

如何獲得可繪製爲R.drawable.xxx?

+1

想要知道背景資源的ID嗎? –

+0

我想獲得我在視圖中分配的drawable。通過使用下面的代碼創建背景到我​​的視圖後:setBackgroundDrawable(R.drawable.pic) - 我想獲得R.drawable.pic的值...是否有可能? – user1623176

+0

查看下面的答案。希望它能幫助你 –

回答

-3

無論何時設置Background,都可以在Drawable成員類中設置R.drawable.pic。

v.setBackgroundDrawable(R.drawable.pic); 
int myDrawable = R.drawable.pic; 
+0

'R.drawable.pic'是一個整數值,而不是'Drawable'你測試了getDrawable()嗎? –

+0

? –

+1

類型View中的方法setBackgroundDrawable(Drawable)不適用於參數(int)。還有什麼是intValue()? – user1623176

2

View類不提供方法,您可以使用:

myView.setBackgroundResource(int resId);接收要設置

提拉的ID但僅僅是沒有這種方法的吸氣劑, :

myView.getBackgroundDrawable();返回在視圖中設置的drawable。

您可以擴展視圖來創建自己的視圖並覆蓋setBackgroundResource,將ID保存在auxiliar var中,然後調用super方法。定義一個getter來返回auxiliar var,你將得到你想要的功能。

+0

我有2個具有相同背景可繪製的按鈕。但是當我得到他們的背景可繪製時,它是不同的。什麼屬性會使他們相同(除了是一個按鈕)? – user1623176

+0

兩個drawables對象,不會在等於我相信的情況下返回true,但是您可以檢查它的重量,或者讓我自己的按鈕像我說的檢查ID – noni

+0

您是什麼意思來檢查它的重量? – user1623176

1
view.getBackgroundDrawable(); 

使用此命令獲取背景可繪製。這將返回繪製

編輯

這個工作在版本低於果凍豆,當這個答案寫現在這個方法在最新版本棄用

新的編輯

適用版本糖果試試後

view.getBackground() 

如果有人想要比較繪製對象,請按照下列步驟操作answer

+0

這不起作用,它不在Android API中。 –

+0

果凍豆解決方案? – msangel

+0

嘗試@msangel view.getBackground()。 。告訴我,如果它的作品將更新我的答案https://stackoverflow.com/a/27730795/1450401 – edwin