有的项目在启动需要停留固定的几秒钟,往往这个控制跟需求逻辑是没有多大关系的,所以封装到了一个view组建中
标签:
Android
[1].[代码] [Java]代码 跳至 [1] [2]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
public
class
SplashRootLayout
extends
LinearLayout {
public
SplashRootLayout(Context context, AttributeSet attrs) {
super
(context, attrs);
}
public
SplashRootLayout(Context context) {
super
(context);
}
@Override
protected
void
onDraw(Canvas canvas) {
super
.onDraw(canvas);
postDelayed(splashRunnable,
3000
);
}
private
Runnable splashRunnable =
new
Runnable() {
@Override
public
void
run() {
ViewGroup p = (ViewGroup) getParent();
if
(p !=
null
) {
p.removeView(SplashRootLayout.
this
);
}
if
(mSplashDismissListener !=
null
) {
mSplashDismissListener.onSplashDimiss(SplashRootLayout.
this
);
}
}
};
public
interface
OnSplashDismissListener {
public
void
onSplashDimiss(SplashRootLayout v);
}
private
OnSplashDismissListener mSplashDismissListener;
public
void
setOnSpalshDismissListener(OnSplashDismissListener l) {
mSplashDismissListener = l;
}
}
|
[2].[代码] [Java]代码 跳至 [1] [2]
1
2
3
4
5
6
7
8
9
10
11
|
<com.
package
.SplashRootLayout
android:id=
"@+id/splash_view"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/white"
android:gravity=
"center_horizontal"
android:orientation=
"vertical"
>
<some splash view/>...
</com.
package
.SplashRootLayout>
|