如何在不使用任何库的情况下在android中实现这样的头像选择屏幕?

时间:2017-01-06 08:16:34

标签: android android-viewpager carousel

这是我的第一个问题。我正在尝试为我的大学项目实施类似的头像选择屏幕。我几乎到处搜索,似乎可以使用viewpager完成。我试过但不能达到类似的效果。我有问题是同时显示所有孩子。并且我也无法实现精选的高位缩放和低位休息。请帮助我,我希望尽快实施而不使用任何库,因为我想了解如何在没有它的情况下实现它。提前谢谢。

enter image description here

我尝试创建一个包含3张图片的viewpager。这是我的实施。

MainActivity.java with MyPagerAdapter

public class MainActivity extends AppCompatActivity {

FragmentPagerAdapter pagerAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ViewPager viewPager = (ViewPager) findViewById(R.id.myViewPager);
    pagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
    viewPager.setAdapter(pagerAdapter);
}

public static class MyPagerAdapter extends FragmentPagerAdapter {

    private static int NUM_ITEMS = 3;

    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {

            case 0:
                return FirstFragment.newInstance(R.drawable.a);
            case 1:
                return SecondFragment.newInstance(R.drawable.b);
            case 2:
                return ThirdFragment.newInstance(R.drawable.c);
            default:
                return null;
        }
    }

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

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">

<android.support.v4.view.ViewPager
    android:id="@+id/myViewPager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
</android.support.v4.view.ViewPager>

</RelativeLayout>

我有3个Fragements。这是其中一个方面。

FirstFragment.java

public class FirstFragment extends Fragment {
private int image;

public FirstFragment() {

}

public static FirstFragment newInstance(int resImage) {
    FirstFragment fragment = new FirstFragment();
    Bundle args = new Bundle();
    args.putInt("image", resImage);
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    image = getArguments().getInt("image", 0);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_first, container, false);

    ImageView imageView = (ImageView) view.findViewById(R.id.firstImg);
    imageView.setImageResource(image);
    return view;
}

}

这是fragment_first.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<!-- TODO: Update blank fragment layout -->
<ImageView
    android:id="@+id/firstImg"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</FrameLayout>

0 个答案:

没有答案