【Android开发Wiki】进阶篇高效的显示位图(四)—在你的UI中显示位图.pdf
文本预览下载声明
eoe 移动开发者社区 /
原文链接:/training/displaying-bitmaps/display-bitmap.
html
负责人:
完成时间:9月13日
这一节整合以前的所有节知识点,向你展示通过在后台线程中结合位图缓存如何加载多张位
图到ViewPager和GridView组件中,当处理并发性和用户配置变化的时候.
加载位图到一个ViewPager的实现
swipe view pattern是一个很好的方式来浏览图片库的详细视图.你能实现这个模式使用V
iewPager组件支持的PagerAdapter.然而,一个更合适的支持适配器是一个子类FragmentS
tatePagerAdapter,当它们退出屏幕时在ViewPager中它自动销毁和保存Fragments的状态,
使得不会太占内存.
注意:如果你只有少量的图片,并且能保证它们是在应用程序内存限制以内,然后使用普通
的PagerAdapter或者FragmentPagerAdapter可能更合适.
接下来是一个包含ImageView子视图的ViewPager的实现.主活动中持有ViewPager和相应
的适配器:
1public class ImageDetailActivity extends FragmentActivity {
2 public static final String EXTRA_IMAGE = extra_image;
3
4 private ImagePagerAdapter mAdapter;
5 private ViewPager mPager;
6
7 // A static dataset to back the ViewPager adapter
8 public final static Integer[] imageResIds = new Integer[] {
9 R.drawable.sample_image_1, R.drawable.sample_image_2, R.drawable.sample_ima
10ge_3,
11 R.drawable.sample_image_4, R.drawable.sample_image_5, R.drawable.sample_ima
12ge_6,
13 R.drawable.sample_image_7, R.drawable.sample_image_8, R.drawable.sample_ima
14ge_9};
15
16 @Override
17 public void onCreate(Bundle savedInstanceState) {
18 super.onCreate(savedInstanceState);
19 setContentView(R.layout.image_detail_pager); // Contains just a ViewPager
20
21 mAdapter = new ImagePagerAdapter(getSupportFragmentManager(), imageResIds.lengt
22h);
23 mPager = (ViewPager) findViewById(R.id.pager);
24 mPager.setAdapter(mAdapter);
eoe 移动开发者社区 /
25 }
26
27 public static class ImagePagerAdapter extends FragmentStatePagerAdapter {
28 private final int mSize;
29
30 public ImagePagerAdapter(FragmentManager fm, int size) {
31 super(fm);
32 mSize = size;
33 }
34
显示全部