Skip to content

Commit dbd0f00

Browse files
committed
[commit]add SnackbarUtil
1 parent 4e06901 commit dbd0f00

File tree

2 files changed

+179
-0
lines changed

2 files changed

+179
-0
lines changed

library/src/main/java/com/code19/library/BitmapUtils.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,24 @@ public static Bitmap getImageThumbnail(String imagePath) {
103103
bitmap = Bitmap.createBitmap(10, 10, Bitmap.Config.ALPHA_8);
104104
}
105105
return bitmap;
106+
}
107+
public static Bitmap createCircularClip(Bitmap input, int width, int height) {
108+
if (input == null) return null;
109+
110+
final int inWidth = input.getWidth();
111+
final int inHeight = input.getHeight();
112+
final Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
113+
final Canvas canvas = new Canvas(output);
114+
final Paint paint = new Paint();
115+
paint.setShader(new BitmapShader(input, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
116+
paint.setAntiAlias(true);
117+
final RectF srcRect = new RectF(0, 0, inWidth, inHeight);
118+
final RectF dstRect = new RectF(0, 0, width, height);
119+
final Matrix m = new Matrix();
120+
m.setRectToRect(srcRect, dstRect, Matrix.ScaleToFit.CENTER);
121+
canvas.setMatrix(m);
122+
canvas.drawCircle(inWidth / 2, inHeight / 2, inWidth / 2, paint);
123+
return output;
106124
}
107125

108126
}
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
/**
2+
* Created by 赵晨璞 on 2016/5/1.
3+
*/
4+
public class SnackbarUtil {
5+
6+
public static final int Info = 1;
7+
public static final int Confirm = 2;
8+
public static final int Warning = 3;
9+
public static final int Alert = 4;
10+
11+
12+
public static int red = 0xfff44336;
13+
public static int green = 0xff4caf50;
14+
public static int blue = 0xff2195f3;
15+
public static int orange = 0xffffc107;
16+
17+
//SnackbarUtil.ShortSnackbar(coordinator,"妹子向你发来一条消息",SnackbarUtil.Info).show();
18+
/**
19+
* 短显示Snackbar,自定义颜色
20+
* @param view
21+
* @param message
22+
* @param messageColor
23+
* @param backgroundColor
24+
* @return
25+
*/
26+
public static Snackbar ShortSnackbar(View view, String message, int messageColor, int backgroundColor){
27+
Snackbar snackbar = Snackbar.make(view,message, Snackbar.LENGTH_SHORT);
28+
setSnackbarColor(snackbar,messageColor,backgroundColor);
29+
return snackbar;
30+
}
31+
32+
/**
33+
* 长显示Snackbar,自定义颜色
34+
* @param view
35+
* @param message
36+
* @param messageColor
37+
* @param backgroundColor
38+
* @return
39+
*/
40+
public static Snackbar LongSnackbar(View view, String message, int messageColor, int backgroundColor){
41+
Snackbar snackbar = Snackbar.make(view,message, Snackbar.LENGTH_LONG);
42+
setSnackbarColor(snackbar,messageColor,backgroundColor);
43+
return snackbar;
44+
}
45+
46+
/**
47+
* 自定义时常显示Snackbar,自定义颜色
48+
* @param view
49+
* @param message
50+
* @param messageColor
51+
* @param backgroundColor
52+
* @return
53+
*/
54+
public static Snackbar IndefiniteSnackbar(View view, String message,int duration,int messageColor, int backgroundColor){
55+
Snackbar snackbar = Snackbar.make(view,message, Snackbar.LENGTH_INDEFINITE).setDuration(duration);
56+
setSnackbarColor(snackbar,messageColor,backgroundColor);
57+
return snackbar;
58+
}
59+
60+
/**
61+
* 短显示Snackbar,可选预设类型
62+
* @param view
63+
* @param message
64+
* @param type
65+
* @return
66+
*/
67+
public static Snackbar ShortSnackbar(View view, String message, int type){
68+
Snackbar snackbar = Snackbar.make(view,message, Snackbar.LENGTH_SHORT);
69+
switchType(snackbar,type);
70+
return snackbar;
71+
}
72+
73+
/**
74+
* 长显示Snackbar,可选预设类型
75+
* @param view
76+
* @param message
77+
* @param type
78+
* @return
79+
*/
80+
public static Snackbar LongSnackbar(View view, String message,int type){
81+
Snackbar snackbar = Snackbar.make(view,message, Snackbar.LENGTH_LONG);
82+
switchType(snackbar,type);
83+
return snackbar;
84+
}
85+
86+
/**
87+
* 自定义时常显示Snackbar,可选预设类型
88+
* @param view
89+
* @param message
90+
* @param type
91+
* @return
92+
*/
93+
public static Snackbar IndefiniteSnackbar(View view, String message,int duration,int type){
94+
Snackbar snackbar = Snackbar.make(view,message, Snackbar.LENGTH_INDEFINITE).setDuration(duration);
95+
switchType(snackbar,type);
96+
return snackbar;
97+
}
98+
99+
//选择预设类型
100+
private static void switchType(Snackbar snackbar,int type){
101+
switch (type){
102+
case Info:
103+
setSnackbarColor(snackbar,blue);
104+
break;
105+
case Confirm:
106+
setSnackbarColor(snackbar,green);
107+
break;
108+
case Warning:
109+
setSnackbarColor(snackbar,orange);
110+
break;
111+
case Alert:
112+
setSnackbarColor(snackbar,Color.YELLOW,red);
113+
break;
114+
}
115+
}
116+
117+
/**
118+
* 设置Snackbar背景颜色
119+
* @param snackbar
120+
* @param backgroundColor
121+
*/
122+
public static void setSnackbarColor(Snackbar snackbar, int backgroundColor) {
123+
View view = snackbar.getView();
124+
if(view!=null){
125+
view.setBackgroundColor(backgroundColor);
126+
}
127+
}
128+
129+
/**
130+
* 设置Snackbar文字和背景颜色
131+
* @param snackbar
132+
* @param messageColor
133+
* @param backgroundColor
134+
*/
135+
public static void setSnackbarColor(Snackbar snackbar, int messageColor, int backgroundColor) {
136+
View view = snackbar.getView();
137+
if(view!=null){
138+
view.setBackgroundColor(backgroundColor);
139+
((TextView) view.findViewById(R.id.snackbar_text)).setTextColor(messageColor);
140+
}
141+
}
142+
143+
/**
144+
* 向Snackbar中添加view
145+
* @param snackbar
146+
* @param layoutId
147+
* @param index 新加布局在Snackbar中的位置
148+
*/
149+
public static void SnackbarAddView( Snackbar snackbar,int layoutId,int index) {
150+
View snackbarview = snackbar.getView();
151+
Snackbar.SnackbarLayout snackbarLayout=(Snackbar.SnackbarLayout)snackbarview;
152+
153+
View add_view = LayoutInflater.from(snackbarview.getContext()).inflate(layoutId,null);
154+
155+
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
156+
p.gravity= Gravity.CENTER_VERTICAL;
157+
158+
snackbarLayout.addView(add_view,index,p);
159+
}
160+
161+
}

0 commit comments

Comments
 (0)