现在的位置: 首页 > 综合 > 正文

Android自定义组件(二)

2018年04月02日 ⁄ 综合 ⁄ 共 2641字 ⁄ 字号 评论关闭

 

4)创建布局
注意xmlns:join声明的命名空间,和格式为:
xmlns:空间名="http://schemas.android.com/apk/res/自定义组件所在包名"
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:join="http://schemas.android.com/apk/res/org.join.effect.widget"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. android:orientation="vertical" >
  7. <org.join.effect.widget.tpager.TitleViewPager
  8. android:id="@+id/titleViewPager1"
  9. android:layout_width="fill_parent"
  10. android:layout_height="fill_parent"
  11. android:layout_alignParentTop="true"
  12. android:layout_centerHorizontal="true"
  13. android:layout_weight="1"
  14. join:bImage="@drawable/icon"
  15. join:tLayout="@layout/title" >
  16. </org.join.effect.widget.tpager.TitleViewPager>
  17. <org.join.effect.widget.tpager.TitleViewPager
  18. android:id="@+id/titleViewPager2"
  19. android:layout_width="fill_parent"
  20. android:layout_height="fill_parent"
  21. android:layout_alignParentTop="true"
  22. android:layout_centerHorizontal="true"
  23. android:layout_weight="1"
  24. join:tLayout="@layout/title" >
  25. </org.join.effect.widget.tpager.TitleViewPager>
  26. </LinearLayout>
5)样例活动

  1. public class TitleViewPagerActivity extends Activity implements
  2. OnPageChangeListener {
  3. private TitleViewPager titleViewPager1, titleViewPager2;
  4. @Override
  5. protected void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.mpager);
  8. // 获得TitleViewPager1组件
  9. titleViewPager1 = (TitleViewPager) findViewById(R.id.titleViewPager1);
  10. /* 增加其绑定页面 */
  11. titleViewPager1.addBindedPage(R.layout.page1, R.id.item1);
  12. titleViewPager1.addBindedPage(R.layout.page2, R.id.item2);
  13. titleViewPager1.addBindedPage(R.layout.page3, R.id.item3);
  14. // 获得TitleViewPager2组件
  15. titleViewPager2 = (TitleViewPager) findViewById(R.id.titleViewPager2);
  16. /* 增加其绑定页面 */
  17. titleViewPager2.addBindedPage(R.layout.page1, R.id.item1);
  18. titleViewPager2.addBindedPage(R.layout.page2, R.id.item2);
  19. titleViewPager2.addBindedPage(R.layout.page3, R.id.item3);
  20. // 设置页面变化监听事件
  21. titleViewPager2.setOnPageChangeListener(this);
  22. }
  23. // Called when the current Window of the activity gains or loses focus.
  24. @Override
  25. public void onWindowFocusChanged(boolean hasFocus) {
  26. super.onWindowFocusChanged(hasFocus);
  27. if (hasFocus) {
  28. // UI加载完成后的初始化操作
  29. titleViewPager1.setPage(1);
  30. titleViewPager2.setPage(1);
  31. }
  32. }
  33. @Override
  34. public void onPageScrolled(int position, float positionOffset,
  35. int positionOffsetPixels) {
  36. }
  37. @Override
  38. public void onPageSelected(int position) {
  39. ArrayList<View> mItemViews = titleViewPager2.getItemViews();
  40. for (View item : mItemViews) {
  41. item.setBackgroundColor(Color.TRANSPARENT); // 设为透明背景
  42. }
  43. mItemViews.get(position).setBackgroundColor(Color.BLUE); // 设为蓝色背景
  44. }
  45. @Override
  46. public void onPageScrollStateChanged(int state) {
  47. }
  48. }
三、截图
1 主界面

主界面

2 ViewPager绑定标题

主界面

3 ListView加抽屉

主界面

4 隐藏更多标题

主界面

5 实时动态数据线

实时动态数据线

四、后记
这个工程里的这些组件效果,使用时仍有许多不足之处。总之,是引子,欢迎用上这些样例小组件~

抱歉!评论已关闭.