如何在Android中显示图像并通过向右/向左滑动进行更改?

时间:2015-05-14 19:44:13

标签: android android-fragments

我想在我的Android应用程序中添加一个简介,告知用户应用程序的工作原理。如果首选设置简介为false,则仅显示此简介。所以在这个介绍中,将会有3个图像,最后会有一个页面,带有一些文本和两个按钮,以便用户通过登录来访问应用程序。每个图像之间的变化将通过滑动运动(从右到左+,从左到右 - )进行。我该怎么办?

3 个答案:

答案 0 :(得分:3)

这可以通过使用Fragments和ViewPager以及FragmentPagerAdapter来完成。看看这个文档:

FragmentPagerAdapter:http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html

ViewPager: http://developer.android.com/reference/android/support/v4/view/ViewPager.html

您可以根据ViewPager中的id实例化一个片段,该ID将指示要在图像片段中显示的图像。因此,对于三个图像,您实例化一个新片段,该片段基于FragmentPagerAdapter中的当前页面设置片段中的图像。第二个片段可以是最后一个用于登录按钮和文本的片段。

FragmentActivity(或AppCompatActivity)中定义的适配器的Ex

    public class MyAdapter extends FragmentPagerAdapter {
        public MyAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public int getCount() {
            return NUM_ITEMS;
        }

        @Override
        public Fragment getItem(int position) {
            if(position < 3)
                return ImageFragment.newInstance(position);
            else
                return new LoginFragment();
        }
}

介绍中各种图像的图片片段:

public static class ImageFragment extends Fragment{
    private int mPosition;

    public ImageFragment(){
    }

    public static ImageFragment newInstance(int pos){
        ImageFragment frag = new ImageFragment();
        Bundle args = new Bundle();
        args.putInt("pos", pos);
        frag.setArguments(args);
        return frag;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mPosition = getArguments().getInt("pos");

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
            View v = inflater.inflate(R.layout.fragment_image, container, false);
            ImageView backgroundView = (ImageView) v.findViewById(R.id.background_image);
            switch(mPosition){
                case 0:
                    //set background view image 1
                case 1:
                    //set background view image 2
                default:
                    //set background view image 3
            }
            return v;
    }

}

答案 1 :(得分:1)

我建议使用ViewPager。从开发人员指南

查看本教程

http://developer.android.com/training/animation/screen-slide.html

如果你想为每个页面添加功能而不是只有图像,那么你可以实现一个fragmentStatePagerAdapter,然后将所有功能放在每个片段中。这是一个实现它的教程。

http://www.truiton.com/2013/05/android-fragmentstatepageradapter-example/

答案 2 :(得分:1)

我认为我们可以通过使用回收站视图本身来做到这一点。 在回收站视图中使用PagerSnapHelper布局管理器,我们可以实现滑动来更改图像。

    recyclerView.setLayoutManager(new LinearLayoutManager(this,
            LinearLayoutManager.HORIZONTAL, false));

    // add pager behavior
    PagerSnapHelper snapHelper = new PagerSnapHelper();
    snapHelper.attachToRecyclerView(recyclerView);