簡體   English   中英

將Mipmap資源用作Button DrawableTop

[英]Using Mipmap resource as Button DrawableTop

我目前正在使用Xamarin.Android應用程序。 我有一個包含文本和DrawableTop mipmap圖像的按鈕。 當我在axml中設置默認的DrawableTop圖像時,它正在工作,我的圖像出現在我想要的位置。

但是,我想做的是,在單擊按鈕時以編程方式在按鈕內更改此圖像,然后再次單擊后還原(使用布爾值檢查實際狀態)。

因此,我在Internet上進行了檢查,發現該函數可以替換C#代碼中按鈕中的可繪制對象。 我還需要收集所需的mipmap圖像,但是由於該按鈕需要Drawable objetcs,因此我嘗試了幾種方法,唯一不會崩潰的是:

Drawable topDrawable = Resources.GetDrawable(Resource.Mipmap.mymipmap);
filterButton.SetCompoundDrawables(null, topDrawable, null, null);
//The parameters being, in order, left, top, right, bottom drawables.

編譯時,我可以看到在布局中定義了默認DrawableTop的按鈕,但是當我單擊時,它消失了,而不是顯示新圖像。 我的猜測是topDrawable實際上等於null。

因此,我正在尋找一種獲取Mipmap資源並將其用作可繪制對象的方法。 但是也許我錯了,問題出在別的地方。

提前致謝 !

實際上,我認為解決方案更簡單。 正如我用斷點檢查的那樣,drawable不等於null。 問題出在圖像的位置。 直接在布局中定義圖像時,此Drawable有一個自動定義的位置。 當以編程方式使用上述功能替換可繪制對象時,我們還將替換位置。 為了保持原始位置並僅替換圖像,我們需要這樣做:

Drawable topDrawable = Resources.GetDrawable(Resource.Mipmap.mymipmap);
filterButton.SetCompoundDrawablesWithIntrinsicBounds(null, topDrawable, null, null);

函數的名稱說明了一切。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM