天天看點

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,如需轉載請自行聯系原作者

繼續閱讀