Android更改imagebutton為純色方法


 

我的imagebutton所用的背景png圖片是灰色的,但是我想讓他顯示出來是白色的按鈕,如果用ps去一個個填充不太現實,那有沒有什么辦法去通過xml里的屬性改變背景顏色呢?

一開始我用了網上的方法

    <ImageButton
        android:tint="#fff"
        android:layout_marginRight="20dp"
        android:layout_marginTop="0dp"
        android:id="@+id/message"
        android:layout_centerVertical="true"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:background="@color/transparent"
        android:src="@drawable/message"
        android:layout_toLeftOf="@id/account"/>
 
        

用了tint屬性,設置為白色,再將背景設為透明。

可是出現了右二按鈕的情況

然后我開始自己調試

 

 <ImageButton
        android:tint="#fff"
        android:layout_centerVertical="true"
        android:id="@+id/account"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignParentRight="true"
        android:layout_marginRight="5dp"
        android:background="@drawable/account"
        android:src="@drawable/account"
        
        />

我將background和src同時使用背景圖片

如圖最后一個按鈕,我發現白色按鈕是出現了,可是卻不是我想要的,他被放大了。

后來我又使用了

android:scaleType="centerInside"

這個的作用是 將圖片的內容完整居中顯示,通過按比例縮小或原來的size使得圖片長/寬等於或小於View的長/寬

最后終於得到了我想要的結果

這樣就大功告成了!

最后附上scaletype的用法

ImageView的屬性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType)。

android:scaleType是控制圖片如何 resized/moved來匹對ImageView的size。

ImageView.ScaleType / android:scaleType值的意義區別:

CENTER /center  按圖片的原來size居中顯示,當圖片長/寬超過View的長/寬,則截取圖片的居中部分顯示 
CENTER_CROP / centerCrop  按比例擴大圖片的size居中顯示,使得圖片長 (寬)等於或大於View的長(寬) 
CENTER_INSIDE / centerInside  將圖片的內容完整居中顯示,通過按比例縮小或原來的size使得圖片長/寬等於或小於View的長/寬
FIT_CENTER / fitCenter  把圖片按比例擴大/縮小到View的寬度,居中顯示 
FIT_END / fitEnd   把圖片按比例擴大/縮小到View的寬度,顯示在View的下部分位置 
FIT_START / fitStart  把圖片按比例擴大/縮小到View的寬度,顯示在View的上部分位置
FIT_XY / fitXY  把圖片  不按比例 擴大/縮小到View的大小顯示 
MATRIX / matrix  用矩陣來繪制



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM