原生Camera设置的分析(一):布局
2014-06-20 09:11
211 查看
首先设置的所有 list 用了两种自定义的控件,一种定义为SettingListLayout.java,另一个的定义为InLineSettingRestore.java。“还原默认设置”用的控件是InLineSettingRestore,其它的list用的是SettingListLayout。对应的布局文件如下:
setting_list_layout.xml
in_line_setting_restore.xml
SettingManager.java的关键代码如下:
1、 首先 List<Holder> list = new ArrayList<Holder>();是定义的三个Tab ;
2、然后定义一下设置的列表项List<SettingListLayout> pageViews = new ArrayList<SettingListLayout>();
3、“还原默认设置”项的添加代码是pageView.initialize(SettingChecker.getSettingKeys(holder.mSettingKeys), i == 0);
4、最后将所有的列表添加进来:pageViews.add(pageView);
最后,将上面完成的设置项添加到适配器里来,代码如下:
setting_list_layout.xml
<?xml version="1.0" encoding="utf-8"?> <com.android.camera.ui.SettingListLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ListView android:id="@+id/settingList" style="@style/SettingItemList" android:layout_gravity="top" /> </com.android.camera.ui.SettingListLayout>
in_line_setting_restore.xml
<?xml version="1.0" encoding="utf-8"?> <com.android.camera.ui.InLineSettingRestore xmlns:android="http://schemas.android.com/apk/res/android" style="@style/SettingRow" > <TextView android:id="@+id/title" style="@style/SettingItemRestore" /> </com.android.camera.ui.InLineSettingRestore>
SettingManager.java的关键代码如下:
private void initializeSettings() { if (mSettingLayout == null && getContext().getPreferenceGroup() != null) { mSettingLayout = (ViewGroup) getContext().inflate(R.layout.setting_container, SETTING_PAGE_LAYER); mTabHost = (TabHost)mSettingLayout.findViewById(R.id.tab_title); mTabHost.setup(); List<Holder> list = new ArrayList<Holder>(); <....................................................................................................................................................................................................................................................................................................................> int size = list.size(); List<SettingListLayout> pageViews = new ArrayList<SettingListLayout>(); for (int i = 0; i < size; i++) { Holder holder = list.get(i); //new page view SettingListLayout pageView = (SettingListLayout)getContext() .inflate(R.layout.setting_list_layout, SETTING_PAGE_LAYER); pageView.initialize(SettingChecker.getSettingKeys(holder.mSettingKeys), i == 0); pageViews.add(pageView); //new indicator view ImageView indicatorView = new ImageView(getContext()); indicatorView.setBackgroundResource(R.drawable.bg_tab_title); indicatorView.setImageResource(holder.mIndicatorIconRes); indicatorView.setScaleType(ScaleType.CENTER); mTabHost.addTab(mTabHost.newTabSpec(holder.mIndicatorKey) .setIndicator(indicatorView) .setContent(android.R.id.tabcontent)); } mAdapter = new MyPagerAdapter(pageViews); mPager = (ViewPager) mSettingLayout.findViewById(R.id.pager); mPager.setAdapter(mAdapter); mPager.setOnPageChangeListener(mAdapter); mTabHost.setOnTabChangedListener(this); } Util.setOrientation(mSettingLayout, getOrientation(), false); }
1、 首先 List<Holder> list = new ArrayList<Holder>();是定义的三个Tab ;
2、然后定义一下设置的列表项List<SettingListLayout> pageViews = new ArrayList<SettingListLayout>();
3、“还原默认设置”项的添加代码是pageView.initialize(SettingChecker.getSettingKeys(holder.mSettingKeys), i == 0);
4、最后将所有的列表添加进来:pageViews.add(pageView);
最后,将上面完成的设置项添加到适配器里来,代码如下:
mAdapter = new MyPagerAdapter(pageViews); mPager = (ViewPager) mSettingLayout.findViewById(R.id.pager); mPager.setAdapter(mAdapter); mPager.setOnPageChangeListener(mAdapter); mTabHost.setOnTabChangedListener(this);
相关文章推荐
- 原生Camera设置的分析(二):分辨率的过滤
- 原生Camera设置的分析(三):自定义控件ListPreference分析
- Camera系统中设置picture大小菜单的流程分析(三)
- Camera系统中设置picture大小菜单的流程分析(二)
- Camera系统中设置picture大小菜单的流程分析
- Android之Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
- **在布局文件中设置Button的点击事件,代码中方法要传入View的原因分析**
- Camera系统中设置picture大小菜单的流程分析(一)
- Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
- Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
- android 原生camera——设置模块修改
- Camera系统中设置picture大小菜单的流程分析(三)
- Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
- 原生camera应用 保存设置界面参数方法
- Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
- Camera系统中设置picture大小菜单的流程分析(一)
- Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
- Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
- Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
- Camera系统中设置picture大小菜单的流程分析