Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zhy.magicviewpager.sample" >
package="com.zhy.magicviewpager.sample">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SupportScrollActivity" />
</application>

</manifest>
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.zhy.magicviewpager.sample;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
Expand Down Expand Up @@ -118,6 +119,9 @@ public boolean onOptionsItemSelected(MenuItem item)
}else if ("RotateDown and Alpha And ScaleIn".equals(title))
{
mViewPager.setPageTransformer(true, new RotateDownPageTransformer(new AlphaPageTransformer(new ScaleInTransformer())));
}else if ("Add Transform Can Vertical Scroll".equals(title))
{
startActivity(new Intent(MainActivity.this,SupportScrollActivity.class));
}

setTitle(title);
Expand Down
103 changes: 103 additions & 0 deletions app/src/main/java/com/zhy/magicviewpager/sample/ScrollFragment.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
package com.zhy.magicviewpager.sample;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;

/**
* usage:
* author: kHRYSTAL
* create time: 16/5/7
* update time:
* email: 723526676@qq.com
*/
public class ScrollFragment extends Fragment{

public static Fragment getInstance() {
ScrollFragment fragment = new ScrollFragment();
return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.scroll_fragment, container, false);
}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initView(view);
}

private void initView(View view) {
ListView listView = (ListView)view.findViewById(R.id.list_view);
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < 100; i++) {
list.add(""+i);
}
SimpleAdapter adapter = new SimpleAdapter(getContext(),list);
listView.setAdapter(adapter);
adapter.notifyDataSetChanged();

}

public class SimpleAdapter extends BaseAdapter {

private ArrayList<String> list;
private Context context;

public SimpleAdapter(Context context,ArrayList<String> list){
this.list = list;
this.context = context;
}

@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int position) {
return list.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.textView = (TextView)convertView.findViewById(R.id.text);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
holder.textView.setText(list.get(position));
return convertView;
}
}

public class ViewHolder{
public TextView textView;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package com.zhy.magicviewpager.sample;

import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;


public class SupportScrollActivity extends AppCompatActivity {



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



@Override
public boolean onCreateOptionsMenu(Menu menu)
{
String[] effects = this.getResources().getStringArray(R.array.magic_effect);
for (String effect : effects)
menu.add(effect);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
String title = item.getTitle().toString();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
Bundle bundle = new Bundle();
if ("RotateDown".equals(title))
{
bundle.putInt(SupportScrollFragment.TRANSFORM_TYPE,2);
} else if ("RotateUp".equals(title))
{
bundle.putInt(SupportScrollFragment.TRANSFORM_TYPE,3);
} else if ("RotateY".equals(title))
{
bundle.putInt(SupportScrollFragment.TRANSFORM_TYPE,4);
} else if ("Standard".equals(title))
{
bundle.putInt(SupportScrollFragment.TRANSFORM_TYPE,0);
} else if ("Alpha".equals(title))
{
bundle.putInt(SupportScrollFragment.TRANSFORM_TYPE,1);
} else if ("ScaleIn".equals(title))
{
bundle.putInt(SupportScrollFragment.TRANSFORM_TYPE,5);
} else if ("RotateDown and Alpha".equals(title))
{
bundle.putInt(SupportScrollFragment.TRANSFORM_TYPE,6);
}else if ("RotateDown and Alpha And ScaleIn".equals(title))
{
bundle.putInt(SupportScrollFragment.TRANSFORM_TYPE,7);
}else if ("Add Transform Can Vertical Scroll".equals(title))
{
onBackPressed();
}
fragmentTransaction.replace(R.id.fragment_container,SupportScrollFragment.getInstance(bundle));
fragmentTransaction.commit();
setTitle(title);
return true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
package com.zhy.magicviewpager.sample;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.zhy.magicviewpager.transformer.AlphaPageTransformer;
import com.zhy.magicviewpager.transformer.RotateDownPageTransformer;
import com.zhy.magicviewpager.transformer.ScaleInTransformer;
import com.zhy.magicviewpager.widget.MagicViewPager;
import com.zhy.magicviewpager.widget.TransformType;

import java.util.ArrayList;

/**
* usage:
* author: kHRYSTAL
* create time: 16/5/7
* update time:
* email: 723526676@qq.com
*/
public class SupportScrollFragment extends Fragment{

public static final String TRANSFORM_TYPE = "transform_type";

private ArrayList<String> list;
private MagicViewPager mViewPager;
private SimplePagerAdapter mAdapter;
private static int mTransformType;


public static Fragment getInstance(Bundle bundle) {
SupportScrollFragment fragment = new SupportScrollFragment();
mTransformType = bundle.getInt(TRANSFORM_TYPE);
return fragment;
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.support_scroll_fragment,container,false);
}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initView(view);
}

private void initView(View view) {
mViewPager = (MagicViewPager)view.findViewById(R.id.viewpager);
list = new ArrayList<>();
mAdapter = new SimplePagerAdapter(getChildFragmentManager());

mViewPager.setAdapter(mAdapter);
mViewPager.setMagicPagerMargin(20);
setTransForm(mTransformType);
}

private void setTransForm(int type) {
Log.e("SupportFragment",""+type);
switch (type){
case 0:
mViewPager.setTransformType(TransformType.NON_PAGETRANSFORMER);
break;
case 1:
mViewPager.setTransformType(TransformType.ALPHA_PAGETRANSFORMER);
break;
case 2:
mViewPager.setTransformType(TransformType.ROATE_DOWN_PAGETRANSFORMER);
break;
case 3:
mViewPager.setTransformType(TransformType.ROATE_UP_PAGETRANSFORMER);
break;
case 4:
mViewPager.setTransformType(TransformType.ROTATE_Y_TRANSFORMER);
break;
case 5:
mViewPager.setTransformType(TransformType.SCALE_IN_TRANSFORMER);
break;
case 6:
mViewPager.setPageTransformer(new RotateDownPageTransformer(new AlphaPageTransformer()));
break;
case 7:
mViewPager.setPageTransformer(new RotateDownPageTransformer(new AlphaPageTransformer(new ScaleInTransformer())));

break;
}
}

public class SimplePagerAdapter extends FragmentPagerAdapter {


public SimplePagerAdapter(FragmentManager fm) {
super(fm);
Log.e("SimplePagerAdapter","init");
}

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

@Override
public Object instantiateItem(ViewGroup container, int position) {
return super.instantiateItem(container, position);
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
}

@Override
public Fragment getItem(int position) {
return ScrollFragment.getInstance();
}
}
}
11 changes: 11 additions & 0 deletions app/src/main/res/layout/list_item.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="100dp">
<TextView
android:id="@+id/text"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="100dp" />

</LinearLayout>
17 changes: 17 additions & 0 deletions app/src/main/res/layout/scroll_fragment.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?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:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="#0f0"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>

</RelativeLayout>
8 changes: 8 additions & 0 deletions app/src/main/res/layout/support_scroll_activity.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false">
</FrameLayout>
11 changes: 11 additions & 0 deletions app/src/main/res/layout/support_scroll_fragment.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:clipChildren="false"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.zhy.magicviewpager.widget.MagicViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.zhy.magicviewpager.widget.MagicViewPager>
</RelativeLayout>
Loading