Bạn có hai cách tiếp cận có thể: thực hiện một số dự án mã nguồn mở và điều chỉnh nó theo nhu cầu của bạn, hoặc bằng cách khác, hãy vuốt thẻ của bạn dưới dạng thanh trượt hình ảnh từ hướng dẫn chi tiết.
Đối với tùy chọn đầu tiên, hãy xem trong Github, nơi bạn sẽ tìm thấy một số dự án nhỏ làm bài với features thường trên cuộn dọc hoặc ngang. Tôi đoán bạn có thể tìm thấy thú vị các dự án sau:
CardDeck: Deck of Cards dành cho Android
DeckPicker: Một android Anki dự án hoàn thành droid với một số tính năng bổ sung của thẻ Preview trong màn hình trình duyệt. Trong thẻ màn hình Xem trước sẽ được hiển thị như chế độ xem lại trên cửa sổ card browser.
Cuối cùng nếu các thay đổi bổ sung bạn thực hiện có vẻ tốt đẹp, bạn có thể gửi bản vá cho dự án gốc.
Để thay thế thứ hai, đối với trường hợp bạn muốn triển khai từ đầu, sau đó thực hiện các bước đơn giản, phát triển dự án của bạn thành chi tiết cụ thể/phức tạp hơn tùy chỉnh nó theo ý muốn của bạn.Một hình ảnh thanh trượt độ toàn màn hình sẽ phù hợp với những hóa đơn, trong đó sẽ bao gồm các hoạt động cho trang xem:
activity_fullscreen_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
Và một Java class với một người xem toàn màn hình:
public class FullScreenImageAdapter extends PagerAdapter {
private Activity _activity;
private ArrayList<String> _imagePaths;
private LayoutInflater inflater;
// constructor
public FullScreenImageAdapter(Activity activity,
ArrayList<String> imagePaths) {
this._activity = activity;
this._imagePaths = imagePaths;
}
@Override
public int getCount() {
return this._imagePaths.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((RelativeLayout) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imgDisplay;
Button btnClose;
inflater = (LayoutInflater) _activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View viewLayout = inflater.inflate(R.layout.layout_fullscreen_image, container,
false);
imgDisplay = (ImageView) viewLayout.findViewById(R.id.imgDisplay);
btnClose = (Button) viewLayout.findViewById(R.id.btnClose);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = BitmapFactory.decodeFile(_imagePaths.get(position), options);
imgDisplay.setImageBitmap(bitmap);
// close button click event
btnClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
_activity.finish();
}
});
((ViewPager) container).addView(viewLayout);
return viewLayout;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((RelativeLayout) object);
}
}
Sau đó, bạn đạt được hình ảnh trượt horizontally, chẳng hạn như:
Và để thêm chuyển động thẳng đứng, chỉ bao gồm thêm bố trí dọc:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Swipe Demo"
android:gravity="center"
android:layout_margin="10dip" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:layout_margin="10dip"
android:id="@+id/image_place_holder"/>
</LinearLayout>
</LinearLayout>
nào sẽ cho phép bạn trượt điều vertically:
Vào cuối ngày, những gì bạn muốn có là một mạng lưới, chẳng hạn như di chuyển dọc và ngang nhau. Cho rằng bạn phải kết hợp cả hai chiều dọc và ngang trượt vào một table layout:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent">
<TableLayout
android:id="@+id/amortization"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableRow
android:background="#ffff00">
<TextView
android:text="@string/amortization_1"
android:padding="3dip"/>
<TextView
android:text="@string/amortization_2"
android:padding="3dip"/>
<TextView
android:text="@string/amortization_3"
android:padding="3dip"/>
<TextView
android:text="@string/amortization_4"
android:padding="3dip"/>
<TextView
android:text="@string/amortization_5"
android:padding="3dip"/>
<TextView
android:text="@string/amortization_6"
android:padding="3dip"/>
<TextView
android:text="@string/amortization_7"
android:padding="3dip"/>
</TableRow>
</TableLayout>
</HorizontalScrollView>
</ScrollView>
Tiến hành các bước như vậy và kết hợp nó, sẽ cho phép bạn để đạt được hiệu quả mong muốn.
Hi Avanz, cảm ơn bạn cho bài viết của bạn và ảnh chụp màn hình - họ giúp đỡ. Nội dung bạn hiển thị cho vuốt ngang hiển thị thay đổi toàn màn hình. Tôi đang cố gắng thực hiện một khung nhìn ở mặt trước có thể được vuốt theo chiều ngang, và các khung nhìn đằng sau nó vẫn giữ nguyên. – gnB
Ah .. Tôi thấy bây giờ trong các ghi chú của bạn rằng tôi nên tiếp tục lặp lại từ mã khởi động mà bạn đã liệt kê và thử kết hợp các cách tiếp cận khác nhau để phù hợp với các yêu cầu trong tầm tay. Cảm ơn bạn đã chia sẻ mã và ý tưởng về một số cách khác nhau mà tôi có thể tiến hành với cách tiếp cận đã nói. – gnB
Tôi đã thử đề xuất của bạn để sử dụng dự án này https://github.com/cthibault/CardDeck, nhưng tôi đã không tìm ra cách chạy mã như vậy mà tôi có thể thấy các yếu tố Giao diện người dùng Thẻ & Deck. Tôi chỉ thấy màn hình Hello World và menu tùy chọn không hoạt động. Tôi đã nhập cả hai dự án trong thư mục gốc đó vào ADT và thử chạy cả hai. Dự án thử nghiệm dường như chỉ là các bài kiểm tra đơn vị, mà không có bất kỳ giao diện người dùng nào để xem xét. Tôi đoán bạn phải có thể nhìn thấy một cái gì đó trong môi trường của bạn khi bạn chạy dự án CardDeck chính? – gnB