Android App第一次开始进入的界面,沉浸式状态栏
https://github.com/wanglianghai/UsefulViewPageAPPinhttp://www.jianshu.com/p/7833d8450405这是实习的最后一次demo了,日子是充实的,学习了很多。主要就是自定义view和page view的联合使用1.先自定义好下面的指示器(指示器位置抽成一个对象方便画图)2.要自定义view和view pag
·
https://github.com/wanglianghai/UsefulViewPageAPPin
http://www.jianshu.com/p/7833d8450405
这是实习的最后一次demo了,日子是充实的,学习了很多。
主要就是自定义view和page view的联合使用
1.先自定义好下面的指示器(指示器位置抽成一个对象方便画图)
2.要自定义view和view page联合使用
1.在自定义view中
implements ViewPager.OnPageChangeListener
//OnPageChangeListener
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
mSelectPosition = position;//记录选中的位置
invalidate();//重新画视图
}
@Override
public void onPageScrollStateChanged(int state) {
}
2.添加进view page中就行了
public void setUpWithViewPage(ViewPager viewPage) {
mViewPage = viewPage;
mViewPage.addOnPageChangeListener(this);
}
3.圈的点击事件
1.onTouchEvent中记录点的位置
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mClickX = (int) event.getX();
mClickY = (int) event.getY();
isClick();
break;
}
return super.onTouchEvent(event);
}
2.判断在那个圈中
public void isClick() {
for (int i = 0; i < mCount; i++) {
Indicator indicator = mIndicators.get(i);
if (Math.abs(indicator.cx - mClickX) < mRadius
&& Math.abs(indicator.cy - mClickY) < mRadius) {
mViewPage.setCurrentItem(i);//设置点击
break;
}
}
}
沉浸式状态栏
http://www.jianshu.com/p/752f4551e134
方式一:
<style name="AppTheme" parent="Theme.Design.Light.NoActionBar">
<item name="android:windowTranslucentStatus">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/holo_red_light</item>
</style>
方式二:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//注意要清除 FLAG_TRANSLUCENT_STATUS flag
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().setStatusBarColor(getResources().getColor(android.R.color.holo_red_light));
- For this to take effect,
- 要让这个方法起作用
- the window must be drawing the system bar backgrounds with
- 这个window必须被画用系统的bar背景(android.view.WindowManager.LayoutParams#FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS})
- {@link android.view.WindowManager.LayoutParams#FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS} and
- 并且{@link android.view.WindowManager.LayoutParams#FLAG_TRANSLUCENT_STATUS}不被设置
- {@link android.view.WindowManager.LayoutParams#FLAG_TRANSLUCENT_STATUS} must not be set.
*
更多推荐
已为社区贡献1条内容
所有评论(0)