手机影音2--软件架构分析
2016-11-13 12:38
323 查看
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; }
相关文章推荐
- 2007年 Linux手机软件行业趋势分析
- Tucany SCA软件架构设计理念分析鉴赏 (一)
- Android核心分析之四 ---手机的软件形态
- Android核心分析之四 ---手机的软件形态
- wpa_supplicant软件架构分析
- 软件分析 Vs. 架构设计 (原文最终修订于 2006-05-29 下午06:44:14)
- wpa_supplicant软件架构分析
- 六大手机软件商店分析报告
- 软件商店分析公司:六大手机软件商店分析报告
- wpa_supplicant软件架构分析【转】
- SCA软件架构设计理念分析
- Tucany SCA软件架构设计理念分析(一)
- SCA软件架构设计理念分析
- Android核心分析之四 ---手机的软件形态
- 智能手机软件平台 Android VS iPhone OS: 商业模式分析 (2/4)
- 2007年 Linux手机软件行业趋势分析
- 软件分析 Vs. 架构设计
- 中国管理软件产品开发战略与平台化架构分析 一 刘国华
- 手机软件的信息架构
- VC++远程控制软件的通信架构与源码分析