@flyouting
2014-03-19T16:25:56.000000Z
字数 1558
阅读 3383
这是基于Android Studio及Fragment的相机开发的第五章,如果你还没准备好,先去github上拉一下我的一个示例工程。本章主要包含“HorizontalPhotoGalleryFragment.”
如果没有第三方的支持,在Android中实现水平滚动列表是很麻烦的事情,这里,我使用了 Lucas Rocha的TwoWayView,想使用这个类的话,有些文件引入是必要的,比如attr.xml,这些在工程中的都有提供。
如果你看下 /res/layout 文件夹,你可以看到fragment_horizontal_gallery.xml文件。使用TwoWayView在布局中实现如下:
<com.ultimate.camera.views.TwoWayView
android:orientation="horizontal"
android:id="@+id/horizontalList"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:layout_marginLeft="10dp"
android:layout_marginBottom="50dp"
android:layout_marginTop="50dp"
android:layout_marginRight="10dp"/>
如果你打开HorizontalPhotoGalleryFragment.java 文件,你可以看到:
/**
* Create View!
* @param inflater
* @param container
* @param savedInstanceState
* @return
*/
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View view = null;
view = inflater.inflate(R.layout.fragment_horizontal_gallery, container, false);
// Set the mAdapter
mEmptyTextView = (TextView)view.findViewById(R.id.empty);
mHorizontalListView = (TwoWayView) view.findViewById(R.id.horizontalList);
mHorizontalListView.setAdapter(mAdapter);
mHorizontalListView.setItemMargin(10);
resolveEmptyText();
return view;
}
注意如下几行:
mHorizontalListView = (TwoWayView) view.findViewById(R.id.horizontalList);
mHorizontalListView.setAdapter(mAdapter);
mHorizontalListView.setItemMargin(10);
这里给水平滑动列表加载了Adapter,设置了item间的水平间距。
TwoWayView的好处是它的行为在本质上和ListView和GridView是相同的,一旦我们将其绑定到一个适配器,它将自动链接到我们的 PhotoListItem 对象。当你编译并运行后,你应该看到一个横向排列图片的列表。
翻译:@flyouting
时间:2014/03/19
源地址