一.怎麼進行縮放填充圖像到ImageButton
android:scaleType="fitXY“
android:scaleType 設定圖像的填充方式
fitXY 把圖檔不按比例擴大/縮小到View的大小顯示
說一下要注意的:
這麼做的話,如果控件的長寬比和圖像的長寬比不同的話就與比較嚴重的失真。是以要多注意一下.尤其是多分辨率适配的時候。多做真機調試
使用這個方法填充的時候是必須配合android:src來使用的。對于android:background是無效的.
android:src="@drawable/miss" 改為 android:background="@drawable/miss"
首先background是填充背景的屬性。指定後會根據ImageView元件給定的長寬進行拉伸。
而邊框的存在就是因為背景的存在。是以能替代第一種解決方案
(src是圖像内容(前景),background是背景,可以同時使用。)
二、背景漸變
在drawable建立一XML
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient //漸變
android:startColor="#ff9bd0f3"
android:endColor="#ff2558af"
android:angle="225" /> //漸變角度,0度從左上開始逆時針 ,225度為右上角開始
<corners android:radius="3dp" /> //角度
<stroke android:width="5px" android:color="#000000" /> 邊框
</shape>
三、點選效果
1.點選動畫:
在drawable建立一XML
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@color/switch_thumb_normal_material_dark" /> //點選效果 <item
android:state_enabled="true"
android:drawable="@drawable/background_deepblue" /> //靜止效果
</selector>
Note: 預設狀态應該放到清單的最後,要不每次開始就固定為預設狀态而不會執行其他事件狀态
2.點選後圖檔不回彈(此處用代碼實作)
efaxHeadButton.setBackgroundResource(R.drawable.efax_tab_inbox); //set background image
efaxHeadButton.setOnClickListener(new View.OnClickListener() {
boolean isIconChange = false;
@Override
public void onClick(View v) {
if (isIconChange) { //when isIconChange is true,default image
efaxHeadButton.setBackgroundResource(R.drawable.efax_tab_inbox);
isIconChange = false;
} else { //when isIconChange is false,clicked image
efaxHeadButton.setBackgroundResource(R.drawable.efax_tab_inbox_p);
isIconChange = true;
}
}
});
}
3.設定右上角消息提醒
使用嵌套
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
>
<ImageButton
android:id="@+id/myfaxpgage_head_button1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:background="#ffebebeb"
/>
<TextView
android:id="@+id/myfaxpgage_head_message1"
android:layout_width="30dp"
android:layout_height="30dp"
android:text="2"
android:textSize="28sp"
android:gravity="center"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:background="@drawable/textview"
/>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- android API裡有如下方法,但經測試隻有 rectangle有用,其他均在調用處空白
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape=["rectangle" | "oval" | "line" | "ring"] > -->
<solid android:color="#ffff3f29" />
<corners android:radius="100dp" />
</shape>