您好,登錄后才能下訂單哦!
int borderColor = Color.parseColor("#2E3135");
int bgColor = Color.parseColor("#00FF00");
// 設置View背景樣式,有邊框寬度、邊框顏色、圓角度數、背景顏色。
GradientDrawable shape = DrawableUtils.createShape(1, 4, borderColor, bgColor);
btn1.setBackground(shape);
int textNormalColor = Color.parseColor("#2E3135");
int textPressColor = Color.parseColor("#FF0000");
int textFocusColor = Color.parseColor("#00FF00");
int textEnableColor = Color.parseColor("#0000FF");
// 設置文本點擊樣式切換
ColorStateList colorStateList = DrawableUtils.createColorStateList(textNormalColor, textPressColor, textFocusColor, textEnableColor);
btn2.setTextColor(colorStateList);
/* android:focusableInTouchMode="true" 控件默認獲取焦點 */
int color1 = Color.parseColor("#FF0000");
int color2 = Color.parseColor("#00FF00");
// 設置View點擊樣式切換
GradientDrawable unSelected = DrawableUtils.createShape(1, 4, color1, color2);
GradientDrawable selected = DrawableUtils.createShape(1, 4, color2, color1);
StateListDrawable stateListDrawable = DrawableUtils.createStateListDrawable(unSelected, selected);
btn3.setBackground(stateListDrawable);
public class DrawableUtils {
/**
* 創建一個shape
*
* @param strokeWidth 邊框寬度(px)
* @param roundRadius 圓角半徑(px)
* @param strokeColor 邊框顏色
* @param fillColor 內部填充顏色
* @return GradientDrawable
*/
public static GradientDrawable createShape(int strokeWidth, int roundRadius, int strokeColor, int fillColor) {
GradientDrawable gd = new GradientDrawable();
gd.setColor(fillColor);
gd.setCornerRadius(roundRadius);
gd.setStroke(strokeWidth, strokeColor);
return gd;
}
/**
* 創建按鈕文字點擊樣式
*
* @param normal 正常樣式
* @param pressed 按下樣式
* @param focused 焦點樣式
* @param unable 不可用樣式
* @return ColorStateList
*/
public static ColorStateList createColorStateList(int normal, int pressed, int focused, int unable) {
int[] colors = new int[]{pressed, focused, normal, focused, unable, normal};
int[][] states = new int[6][];
states[0] = new int[]{android.R.attr.state_pressed, android.R.attr.state_enabled};
states[1] = new int[]{android.R.attr.state_enabled, android.R.attr.state_focused};
states[2] = new int[]{android.R.attr.state_enabled};
states[3] = new int[]{android.R.attr.state_focused};
states[4] = new int[]{android.R.attr.state_window_focused};
states[5] = new int[]{};
return new ColorStateList(states, colors);
}
/**
* 創建按鈕點擊樣式
*
* @param unSelected 未點擊樣式
* @param selected 點擊樣式
* @return StateListDrawable
*/
public static StateListDrawable createStateListDrawable(GradientDrawable unSelected, GradientDrawable selected) {
StateListDrawable drawable = new StateListDrawable();
drawable.addState(new int[]{android.R.attr.state_pressed}, selected);
drawable.addState(new int[]{-android.R.attr.state_pressed}, unSelected);
return drawable;
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。