您的位置:首页 > 运维架构 > 网站架构

手机影音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;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: