API 8 (Android 2.2) 中 View.setAlpha(float) 不存在(API 11+ 引入),需用 setAlpha(int) (0-255) 設置透明度。
// API 11+
imageButton.setAlpha(0.5f); // float 0.0-1.0
// API 8 兼容
imageButton.setAlpha(128); // int 0-255,128 约 50%
public static void setAlpha(View view, float alpha) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
view.setAlpha(alpha);
} else {
view.setAlpha((int) (alpha * 255));
}
}
<ImageButton
android:background="@null"
android:src="@drawable/icon"
android:alpha="0.5" /> <!-- API 11+ -->
API 8 用 int 透明度,封裝兼容方法統一調用介面。