天天看点

Android自定义组件(二)

<a target="_blank" href="http://vaero.blog.51cto.com/4350852/872734"> <b>Android</b><b>自定义组件(一)</b></a>

 <b>Android</b><b>自定义组件(二)</b>

<b>4</b><b>)创建布局</b>

         注意xmlns:join声明的命名空间,和格式为:

         xmlns:空间名="http://schemas.android.com/apk/res/自定义组件所在包名"

&lt;?xml version="1.0" encoding="utf-8"?&gt; 

&lt;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" &gt; 

    &lt;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" &gt; 

    &lt;/org.join.effect.widget.tpager.TitleViewPager&gt; 

        android:id="@+id/titleViewPager2" 

&lt;/LinearLayout&gt; 

<b>5</b><b>)样例活动</b>

<b></b>

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. 

    public void onWindowFocusChanged(boolean hasFocus) { 

        super.onWindowFocusChanged(hasFocus); 

        if (hasFocus) { 

            // UI加载完成后的初始化操作 

            titleViewPager1.setPage(1); 

            titleViewPager2.setPage(1); 

        } 

    public void onPageScrolled(int position, float positionOffset, 

            int positionOffsetPixels) { 

    public void onPageSelected(int position) { 

        ArrayList&lt;View&gt; mItemViews = titleViewPager2.getItemViews(); 

        for (View item : mItemViews) { 

            item.setBackgroundColor(Color.TRANSPARENT); // 设为透明背景 

        mItemViews.get(position).setBackgroundColor(Color.BLUE); // 设为蓝色背景 

    public void onPageScrollStateChanged(int state) { 

<b>三、截图</b>

1 主界面

<a target="_blank" href="http://blog.51cto.com/attachment/201205/170330338.png"></a>

2 ViewPager绑定标题

<a target="_blank" href="http://blog.51cto.com/attachment/201205/170330786.png"></a>

3 ListView加抽屉

<a target="_blank" href="http://blog.51cto.com/attachment/201205/170330479.png"></a>

4 隐藏更多标题

<a target="_blank" href="http://blog.51cto.com/attachment/201205/170330860.png"></a>

5 实时动态数据线

<a target="_blank" href="http://blog.51cto.com/attachment/201205/170607633.png"></a>

<b>四、后记</b>

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

<a href="http://down.51cto.com/data/2360626" target="_blank">附件:http://down.51cto.com/data/2360626</a>

     本文转自winorlose2000 51CTO博客,原文链接:http://blog.51cto.com/vaero/872763,如需转载请自行联系原作者

继续阅读