转载请标明出处:http://blog.csdn.net/sk719887916/article/details/40045089,作者:skay
前言
安卓TV开发(五) 移动智能终端UI之实现主流TV视频播放器UI 结尾发现View还是存在缺陷,上文就发现,因为没有adapter,导致FoucusView的代码繁琐,并且也不符合
一个集合框架(listView,GridView)的开发习惯和实现逻辑。本篇会通过FcousView和Adapter结合,完成高效的UI框架,使得开发者自定义宽高,翻页动画,显示可见条数,
和子item布局。 想必大家对gridView已经熟悉的滚瓜烂熟了,用到类似集合的视图控件,我们就会想到适配器,首先就来定义一个适配器 FocusAdapter。其中的子ItemView随
我们自己定义,不但支持一张图片,而且支持复杂的view,包括文字和图片,或者安卓自带的更高级的控件充当子view
一 新建Adapter
<span style="font-family: Arial, Helvetica, sans-serif;">public class FocusAdapter extends BaseAdapter {</span>
private List<TvModle> mLists;
private Context mContext;
public FocusAdapter(List<TvModle> mLists, Context mContext) {
super();
this.mLists = mLists;
this.mContext = mContext;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mLists.size();
}
@Override
public TvModle getItem(int position) {
// TODO Auto-generated method stub
return mLists.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return -1;
}
@SuppressLint("NewApi")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
/*LayoutInflater mInflater = LayoutInflater.from(mContext);
View view = mInflater.inflate(
R.layout.layout_focus_item,parent);
ImageView mImageView = (ImageView) view.findViewById(R.id.photo);
TextView mTextView = (TextView) view.findViewById(R.id.title);
mImageView.setBackgroundResource(mLists.get(position).getImage());
mTextView.setText(mLists.get(position).getName());*/
return null;
}
接下来为FocusView也需要setData和setAdapter方法 FocusView内部定义 FocusAdapter mAdapter为成员属性。