ICSLauncher改造-替换滑屏Indicator
来源:互联网 发布:ad7606 Linux 335x 编辑:程序博客网 时间:2024/06/07 17:39
背景:
原生ICS 已经有一种通过9patch拉伸实现的scrollIndicator但是不够美观,本文就在不修改原生scrollindicator的基础上添加新的冒泡scrollindicator。
效果图如下。实现思路很简单,见正文。
1.添加View对象
1.1 AppScreenBubbleViewFrameLayout extends FrameLayout
每一个“点”是一个AppScreenBubbleViewFrameLayout,它有两个成员变量,imageViewFront、imageViewBack,当前页显示imageViewFront,其他页显示imageViewBack。
1.2 AppScreenBubbleViewFrameLayout extends FrameLayout
for (int page = 0; page < totalPages; ++page) { LayoutParams layoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); AppScreenBubbleViewFrameLayout appScreenBubbleViewFrameLayout = new AppScreenBubbleViewFrameLayout( mContext); if (page == mCurrentPage) { appScreenBubbleViewFrameLayout.getImageViewFront() .setImageDrawable(getFocusDrawable()); } else { appScreenBubbleViewFrameLayout.getImageViewFront() .setImageDrawable(getNormalDrawable()); } this.addView(appScreenBubbleViewFrameLayout, layoutParams); }
1.2添加AppScreenBubbleViewFrameLayout布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"android:layout_width="fill_parent" android:layout_height="wrap_content"android:scaleType="center" android:layout_gravity="bottom|center_horizontal"launcher:direction="horizontal"><com.android.launcher2.AppScreenBubbleViewandroid:id="@+id/drawer_appscreen_num" android:layout_width="match_parent"android:layout_height="wrap_content" android:gravity="center_horizontal"/></LinearLayout>
2.合入Launcher
2.1在Laucher.xml中添加如下布局
<!-- add bubble view --> <include layout="@layout/workspace_bubble_view_layout" android:id="@+id/bubbleView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:layout_marginBottom="@dimen/button_bar_height"/>
2.2.在Laucher.java中初始化
//add bubbleView to Workspace View bubbleView = mDragLayer.findViewById(R.id.bubbleView); mScreenBubbleView = (AppScreenBubbleView) bubbleView.findViewById(R.id.drawer_appscreen_num); mWorkspace.setAppScreenBubbleView(mScreenBubbleView); //mScreenBubbleView.show mWorkspace.showScreenBubbleView(false);
3.PagedView
注意学习动画得使用啊,亲!
protected void showScreenBubbleView(boolean immediately){ if (getChildCount() <= 1) return; if(!isScreenBubbleEnable()) return; getScreenBubbleView(); if(mScreenBubbleView != null){ updateScreenPosition(); mScreenBubbleView.setVisibility(View.VISIBLE); if (immediately) { mScreenBubbleView.setAlpha(1f); } else{ mScreenBubbleViewAnimator = ObjectAnimator.ofFloat(mScreenBubbleView, "alpha", 1f); mScreenBubbleViewAnimator.setDuration(sScreenBubbleFadeInDuration); mScreenBubbleViewAnimator.start(); } } }
// a method that subclasses can override to add behavior protected void onPageBeginMoving() { showScrollingIndicator(false); showScreenBubbleView(false); }
- ICSLauncher改造-替换滑屏Indicator
- Indicator
- 替换ExpandableListView右边箭头Group Indicator(小图标)
- CIO:老IT系统是改造还是替换
- Finance Indicator
- Indicator Variables
- 自定义Indicator
- tab indicator
- ViewPager+Indicator(如何写indicator)
- 图片仿TabLayout Indicator , 自定义Indicator
- 【硬件】墨水屏显示改造方案
- KPI(Key Performance Indicator)
- KPI:Key Performance Indicator
- indicator之小究
- 如何展现Activity Indicator
- UIPicker View Indicator select
- Process Indicator实现
- 使用ViewPager+Fragment+Indicator
- 皋陶输入法~
- Android开发之读写文件
- 郁闷的早晨...
- Android开发学习第一课
- WinCE中命令行工具Viewbin简介
- ICSLauncher改造-替换滑屏Indicator
- 图像处理__腐蚀和膨胀_开运算_闭运算
- c++字符串操作
- 常量定义_ADO光标类型,锁定类型,光标服务位置
- WinCE中命令行工具cvrtbin简介
- android 4.2 adb debug and root
- 列变行
- WinCE BSP中的DAT文件介绍
- 如何非强制性地保持团队工作压力