[关闭]
@flyouting 2014-03-19T16:25:56.000000Z 字数 1558 阅读 3351

Android相机开发指南(五)

水平滚动的图片相册

这是基于Android Studio及Fragment的相机开发的第五章,如果你还没准备好,先去github上拉一下我的一个示例工程。本章主要包含“HorizontalPhotoGalleryFragment.

如果没有第三方的支持,在Android中实现水平滚动列表是很麻烦的事情,这里,我使用了 Lucas Rocha的TwoWayView,想使用这个类的话,有些文件引入是必要的,比如attr.xml,这些在工程中的都有提供。

如果你看下 /res/layout 文件夹,你可以看到fragment_horizontal_gallery.xml文件。使用TwoWayView在布局中实现如下:

  1. <com.ultimate.camera.views.TwoWayView
  2. android:orientation="horizontal"
  3. android:id="@+id/horizontalList"
  4. android:layout_width="match_parent"
  5. android:layout_height="fill_parent"
  6. android:drawSelectorOnTop="false"
  7. android:layout_marginLeft="10dp"
  8. android:layout_marginBottom="50dp"
  9. android:layout_marginTop="50dp"
  10. android:layout_marginRight="10dp"/>

如果你打开HorizontalPhotoGalleryFragment.java 文件,你可以看到:

  1. /**
  2. * Create View!
  3. * @param inflater
  4. * @param container
  5. * @param savedInstanceState
  6. * @return
  7. */
  8. @Override
  9. public View onCreateView(LayoutInflater inflater,
  10. ViewGroup container,
  11. Bundle savedInstanceState) {
  12. View view = null;
  13. view = inflater.inflate(R.layout.fragment_horizontal_gallery, container, false);
  14. // Set the mAdapter
  15. mEmptyTextView = (TextView)view.findViewById(R.id.empty);
  16. mHorizontalListView = (TwoWayView) view.findViewById(R.id.horizontalList);
  17. mHorizontalListView.setAdapter(mAdapter);
  18. mHorizontalListView.setItemMargin(10);
  19. resolveEmptyText();
  20. return view;
  21. }

注意如下几行:

  1. mHorizontalListView = (TwoWayView) view.findViewById(R.id.horizontalList);
  2. mHorizontalListView.setAdapter(mAdapter);
  3. mHorizontalListView.setItemMargin(10);

这里给水平滑动列表加载了Adapter,设置了item间的水平间距。

TwoWayView的好处是它的行为在本质上和ListView和GridView是相同的,一旦我们将其绑定到一个适配器,它将自动链接到我们的 PhotoListItem 对象。当你编译并运行后,你应该看到一个横向排列图片的列表。

翻译:@flyouting
时间:2014/03/19
源地址

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注