Android自定义组件(二)
4)创建布局
注意xmlns:join声明的命名空间,和格式为:
xmlns:空间名="http://schemas.android.com/apk/res/自定义组件所在包名"
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:join="http://schemas.android.com/apk/res/org.join.effect.widget"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <org.join.effect.widget.tpager.TitleViewPager
- android:id="@+id/titleViewPager1"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_alignParentTop="true"
- android:layout_centerHorizontal="true"
- android:layout_weight="1"
- join:bImage="@drawable/icon"
- join:tLayout="@layout/title" >
- </org.join.effect.widget.tpager.TitleViewPager>
- <org.join.effect.widget.tpager.TitleViewPager
- android:id="@+id/titleViewPager2"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_alignParentTop="true"
- android:layout_centerHorizontal="true"
- android:layout_weight="1"
- join:tLayout="@layout/title" >
- </org.join.effect.widget.tpager.TitleViewPager>
- </LinearLayout>
5)样例活动
- public class TitleViewPagerActivity extends Activity implements
- OnPageChangeListener {
- private TitleViewPager titleViewPager1, titleViewPager2;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.mpager);
- // 获得TitleViewPager1组件
- titleViewPager1 = (TitleViewPager) findViewById(R.id.titleViewPager1);
- /* 增加其绑定页面 */
- titleViewPager1.addBindedPage(R.layout.page1, R.id.item1);
- titleViewPager1.addBindedPage(R.layout.page2, R.id.item2);
- titleViewPager1.addBindedPage(R.layout.page3, R.id.item3);
- // 获得TitleViewPager2组件
- titleViewPager2 = (TitleViewPager) findViewById(R.id.titleViewPager2);
- /* 增加其绑定页面 */
- titleViewPager2.addBindedPage(R.layout.page1, R.id.item1);
- titleViewPager2.addBindedPage(R.layout.page2, R.id.item2);
- titleViewPager2.addBindedPage(R.layout.page3, R.id.item3);
- // 设置页面变化监听事件
- titleViewPager2.setOnPageChangeListener(this);
- }
- // Called when the current Window of the activity gains or loses focus.
- @Override
- public void onWindowFocusChanged(boolean hasFocus) {
- super.onWindowFocusChanged(hasFocus);
- if (hasFocus) {
- // UI加载完成后的初始化操作
- titleViewPager1.setPage(1);
- titleViewPager2.setPage(1);
- }
- }
- @Override
- public void onPageScrolled(int position, float positionOffset,
- int positionOffsetPixels) {
- }
- @Override
- public void onPageSelected(int position) {
- ArrayList<View> mItemViews = titleViewPager2.getItemViews();
- for (View item : mItemViews) {
- item.setBackgroundColor(Color.TRANSPARENT); // 设为透明背景
- }
- mItemViews.get(position).setBackgroundColor(Color.BLUE); // 设为蓝色背景
- }
- @Override
- public void onPageScrollStateChanged(int state) {
- }
- }
三、截图
1 主界面
2 ViewPager绑定标题
3 ListView加抽屉
4 隐藏更多标题
5 实时动态数据线
四、后记
这个工程里的这些组件效果,使用时仍有许多不足之处。总之,是引子,欢迎用上这些样例小组件~
附件:http://down.51cto.com/data/2360626
本文转自winorlose2000 51CTO博客,原文链接:http://blog.51cto.com/vaero/872763,如需转载请自行联系原作者