手機影音2--軟體架構分析,影音2--架構分析

來源:互聯網
上載者:User

手機影音2--軟體架構分析,影音2--架構分析

1.標題列

<?xml version="1.0" encoding="utf-8"?><com.atguigu.mobileplayer2.view.TitleBar xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="55dp"    android:background="#ff3097fd"    android:gravity="center_vertical"    android:orientation="horizontal">    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginLeft="8dp"        android:src="@drawable/ic_topbanner_logo" />    <TextView        android:id="@+id/tv_search"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginLeft="8dp"        android:layout_weight="1"        android:background="@drawable/tv_search_bg_selector"        android:clickable="true"        android:drawableLeft="@drawable/tv_search_drawable_selector"        android:drawablePadding="3dp"        android:text="全網搜尋"        android:textColor="@drawable/tv_search_textcolor_selector"        android:textSize="14sp" />    <RelativeLayout        android:id="@+id/rl_game"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginLeft="5dp">        <TextView            android:id="@+id/tv_game"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:drawableLeft="@drawable/ic_topbanner_game" />        <ImageView            android:layout_width="6dp"            android:layout_height="6dp"            android:layout_alignRight="@id/tv_game"            android:background="@drawable/dot" />    </RelativeLayout>    <ImageView        android:id="@+id/iv_record"        android:layout_marginLeft="5dp"        android:layout_marginRight="8dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/ic_topbanner_record" /></com.atguigu.mobileplayer2.view.TitleBar>

 

-----------------------------------------android:drawableLeft="@drawable/sousuokuang_selector"sousuokuang_selector.xml對應的是圖片<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_pressed="false" android:drawable="@drawable/ic_sousuokuang"/>    <item android:state_pressed="true" android:drawable="@drawable/ic_sousuokuang_press"/></selector>------文字顏色--------- android:textColor="@drawable/sousuokuang_textcolor_selector"<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_pressed="false" android:color="#99ffffff"/>    <item android:state_pressed="true" android:color="#ffffffff"/></selector>---------搜尋方塊背景---------- android:background="@drawable/search_bg_selector"<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_pressed="false" android:drawable="@drawable/search_bg_normal"/>    <item android:state_pressed="true" android:drawable="@drawable/search_bg_press"/></selector>android:drawable="@drawable/search_bg_normal"<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <corners android:radius="12.0dp" />    <padding        android:bottom="5dp"        android:left="8dp"        android:right="8dp"        android:top="5dp" />    <solid android:color="#ff2679ca"/></shape>android:drawable="@drawable/search_bg_press"<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <corners android:radius="12.0dp" />    <padding        android:bottom="5dp"        android:left="8dp"        android:right="8dp"        android:top="5dp" />    <solid android:color="#cc2679ca"/></shape>-----------遊戲-------------android:background="@drawable/gam_dot" /><?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="oval">    <solid android:color="#ffff0000"/></shape>

  

2.自訂標題列

public class TitleBar extends LinearLayout implements View.OnClickListener {    private View tv_search;    private View rl_game;    private View iv_record;    private Context context;    /**     * 在代碼中執行個體化該類的時候使用這個方法     * @param context     */    public TitleBar(Context context) {        this(context,null);    }    /**     * 當在布局檔案使用該類的時候,Android系統通過這個構造方法執行個體化該類     * @param context     * @param attrs     */    public TitleBar(Context context, AttributeSet attrs) {        this(context, attrs,0);    }    /**     * 當需要設定樣式的時候,可以使用該方法     * @param context     * @param attrs     * @param defStyleAttr     */    public TitleBar(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        this.context = context;    }    /**     * 當布局檔案載入完成的時候回調這個方法     */    @Override    protected void onFinishInflate() {        super.onFinishInflate();        //得到孩子的執行個體        tv_search = getChildAt(1);        rl_game = getChildAt(2);        iv_record = getChildAt(3);        //設定點擊事件        tv_search.setOnClickListener(this);        rl_game.setOnClickListener(this);        iv_record.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()){            case R.id.tv_search://搜尋//                Toast.makeText(context, "搜尋", Toast.LENGTH_SHORT).show();                Intent intent = new Intent(context,SearchActivity.class);                context.startActivity(intent);                break;            case R.id.rl_game://遊戲                Toast.makeText(context, "遊戲", Toast.LENGTH_SHORT).show();                break;            case R.id.iv_record://播放曆史                Toast.makeText(context, "播放曆史", Toast.LENGTH_SHORT).show();                break;        }    }}

 

3.屏蔽各個頁面重複初始化資料

1.在BasePager中添加識別欄位

public abstract class BasePager {    /**      * 判斷是否初始化過資料    */    public boolean isInit;    ....}

2.在首頁面中屏蔽

/** * 得到具體的某個孩子的執行個體視圖 * @return */private BasePager getBasePager() {    BasePager basePager = basePagers.get(position);    if(basePager != null&&!basePager.isInit){        basePager.initData();        basePager.isInit = true;    }    return basePager;}

  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.