android ImageButton的圖片怎麼定義?

來源:互聯網
上載者:User

標籤:android   http   io   使用   sp   檔案   資料   on   問題   

============問題描述============


我自訂了一個View對象,對象內在行項目上添加了一個ImageButton對象,對象的圖片使用src屬於設定,然後在按鈕的OnClick事件內通過setBackgroundResource方法設定了ImageButton對象的圖片,但兩個屬於對應的圖片不是同一個東西;前者設定後會有一個方形的按鈕在下面顯示,後者設定後不會顯示方形的按鈕;如何在xml內設定setBackgroudResource的圖片,不要顯示按鈕的方框;

============解決方案1============


你的需求用drawable就可以實現啊。 為啥子要寫代碼呢?

另外實際中,imagebutton比較冷門, 都用imageview

============解決方案2============


android:src設定的是圖片顯示的內容,當然和setBackgroundResource設定背景不一樣,你應該設定imageView.setImageDrawable,這個來設定顯示內容,這樣就和android:src設定的一致了。

============解決方案3============


引用 6 樓 hackerlyf 的回複:
view.setBackgroundResource可以設定圖片的背景,用什麼命令擷取view的背景圖片呢?

view.getBackground()

============解決方案4============


可以用preference儲存狀態,也可以設定一個全域標識,點一次改變一下狀態

============解決方案5============


我覺得,你應該使用android的 selector, 既然你是某種按鈕的開閉圖片狀態,直接在drawable檔案夾下建一個xml檔案夾,

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:drawable="@drawable/ic_launcher" android:state_enabled="false" />    <item android:drawable="@drawable/ic_launcher" /></selector>


你將這個檔案作為普通的drawable資源進行使用

當你需要更改圖片狀態的時候,設定view的enable就好了,android會自己幫你切換對應圖片

============解決方案6============


最好用imageview,一樣有點擊事件,何必用imagebutton

============解決方案7============


你的意思是說需要設定該View只顯示圖片而不顯示背景的方框嗎?,可以這樣設定該XML檔案的
android:background="#00000000"
android:src="@drawable/xxx"
 第一句設定背景為全透明,看看是否可行。

============解決方案8============


引用 8 樓 hackerlyf 的回複:
Quote: 引用 7 樓 lionfresh 的回複:

Quote: 引用 6 樓 hackerlyf 的回複:

view.setBackgroundResource可以設定圖片的背景,用什麼命令擷取view的背景圖片呢?

view.getBackground()

我有兩個圖片,一個是開,一個是關,初始化時是關閉狀態,我想判斷View的背景是否是開的圖片還是關的圖片,這兩個圖片放在drawable目錄下,通過view.getBackgroud()擷取的是個drawable對象,R.drawable.lighton是int對象,應該怎麼對比判斷呢?

這個除非你在setBackground()儲存了drawable對象,否則無法比對啊。
不過根據你的需求,你不應該通過圖片的變化來判斷商務邏輯,而是應該通過你顯示的資料本身來判斷。

android ImageButton的圖片怎麼定義?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.