├── .gitignore ├── README.md ├── Screenshot └── index.gif ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── cn │ │ └── groegeyang │ │ └── doublescroll │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── cn │ │ │ └── georgeyang │ │ │ └── doublescroll │ │ │ ├── BaseListFragment.java │ │ │ ├── DSRefView.java │ │ │ ├── DoubleScrollView.java │ │ │ ├── DoubleScrollViewPager.java │ │ │ ├── Fragment1.java │ │ │ ├── Fragment2.java │ │ │ ├── Fragment3.java │ │ │ ├── Fragment4.java │ │ │ ├── FragmentSina.java │ │ │ ├── MainActivity.java │ │ │ ├── NormalRecyclerViewAdapter.java │ │ │ ├── SAdapter.java │ │ │ └── ViewUtil.java │ └── res │ │ ├── layout │ │ ├── activity_listview.xml │ │ ├── layout_dsview.xml │ │ ├── layout_listview.xml │ │ ├── layout_normal.xml │ │ ├── layout_recyclerview.xml │ │ ├── layout_scrollview.xml │ │ └── layout_sina.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ ├── button_triangle_up.png │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w120dp │ │ └── dps.xml │ │ ├── values-w320dp │ │ ├── dimens.xml │ │ └── dps.xml │ │ ├── values-w340dp │ │ └── dps.xml │ │ ├── values-w350dp │ │ └── dimens.xml │ │ ├── values-w360dp │ │ └── dps.xml │ │ ├── values-w380dp │ │ └── dps.xml │ │ ├── values-w400dp │ │ ├── dimens.xml │ │ └── dps.xml │ │ ├── values-w420dp │ │ └── dps.xml │ │ ├── values-w440dp │ │ └── dps.xml │ │ ├── values-w460dp │ │ └── dps.xml │ │ ├── values-w480dp │ │ └── dps.xml │ │ ├── values-w500dp │ │ └── dps.xml │ │ ├── values-w520dp │ │ └── dps.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── dps.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── cn │ └── groegeyang │ └── doublescroll │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .idea/compiler.xml 10 | .idea/encodings.xml 11 | .idea/misc.xml 12 | .idea/copyright/profiles_settings.xml 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DoubleScroll 2 | 3 | 处理一个两层滑动view的自定义布局,以最少的代码实现,可扩展自定义View~ 4 | 5 | #演示效果 6 | 7 | ![weiget Effect](./Screenshot/index.gif) 8 | 9 | #小广告 10 | [安卓适配最佳解决方案](https://github.com/georgeyang1024/DpsGenerate) 11 | -------------------------------------------------------------------------------- /Screenshot/index.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/georgeyang1024/DoubleScroll/d6274cf26d02788dd73c0a1d168ffedde6426be3/Screenshot/index.gif -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 25 5 | buildToolsVersion '25.0.0' 6 | 7 | defaultConfig { 8 | applicationId "cn.georgeyang.doublescroll" 9 | minSdkVersion 15 10 | targetSdkVersion 25 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(include: ['*.jar'], dir: 'libs') 24 | testCompile 'junit:junit:4.12' 25 | compile 'com.android.support:appcompat-v7:+' 26 | compile 'com.android.support:design:+' 27 | } 28 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\android\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/androidTest/java/cn/groegeyang/doublescroll/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package cn.groegeyang.doublescroll; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/BaseListFragment.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.support.v4.app.Fragment; 4 | import android.view.View; 5 | import android.widget.ListView; 6 | 7 | /** 8 | * Created by yangsp on 2016/11/14. 9 | */ 10 | public abstract class BaseListFragment extends Fragment { 11 | abstract View getSlidableView(); 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/DSRefView.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.graphics.Bitmap; 6 | import android.media.MediaPlayer; 7 | import android.os.Build; 8 | import android.support.annotation.RequiresApi; 9 | import android.support.v4.widget.SwipeRefreshLayout; 10 | import android.util.AttributeSet; 11 | import android.view.MotionEvent; 12 | import android.view.View; 13 | import android.view.ViewGroup; 14 | import android.widget.FrameLayout; 15 | import android.widget.ImageView; 16 | import android.widget.RelativeLayout; 17 | import android.widget.ScrollView; 18 | 19 | /** 20 | * Created by george.yang on 16/11/16. 21 | */ 22 | public class DSRefView extends FrameLayout { 23 | public DSRefView(Context context) { 24 | super(context); 25 | } 26 | 27 | public DSRefView(Context context, AttributeSet attrs) { 28 | super(context, attrs); 29 | } 30 | 31 | public DSRefView(Context context, AttributeSet attrs, int defStyleAttr) { 32 | super(context, attrs, defStyleAttr); 33 | } 34 | 35 | @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) 36 | public DSRefView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 37 | super(context, attrs, defStyleAttr, defStyleRes); 38 | } 39 | 40 | @Override 41 | protected void onFinishInflate() { 42 | super.onFinishInflate(); 43 | inflate(getContext(),R.layout.layout_dsview,this); 44 | imgScrollToTop = (ImageView) findViewById(R.id.imgScrollToTop); 45 | imgScrollToTop.setOnClickListener(new OnClickListener() { 46 | @Override 47 | public void onClick(View v) { 48 | if (slideableView!=null) { 49 | ViewUtil.scrollToTop(slideableView); 50 | } 51 | if (parentScrollView!=null) { 52 | ViewUtil.scrollToTop(parentScrollView); 53 | } 54 | v.setVisibility(GONE); 55 | } 56 | }); 57 | if (getContext() instanceof Activity) { 58 | Activity activity = (Activity) getContext(); 59 | parentScrollView = ViewUtil.findView(activity.getWindow().getDecorView(),DoubleScrollView.class); 60 | } else { 61 | parentScrollView = ViewUtil.findView(getRootView(),DoubleScrollView.class); 62 | } 63 | } 64 | 65 | private View slideableView; 66 | private ImageView imgScrollToTop; 67 | public boolean isReleaseTouch () { 68 | return imgScrollToTop.getVisibility()==GONE; 69 | } 70 | 71 | public void setSlideableView (View view) { 72 | slideableView = view; 73 | } 74 | 75 | private DoubleScrollView parentScrollView; 76 | 77 | 78 | @Override 79 | public boolean dispatchTouchEvent(MotionEvent ev) { 80 | switch (ev.getAction()) { 81 | case MotionEvent.ACTION_MOVE: 82 | imgScrollToTop.setVisibility(VISIBLE); 83 | break; 84 | } 85 | return super.dispatchTouchEvent(ev); 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/DoubleScrollView.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.annotation.TargetApi; 4 | import android.content.Context; 5 | import android.graphics.Canvas; 6 | import android.graphics.Matrix; 7 | import android.os.Build; 8 | import android.support.v7.widget.RecyclerView; 9 | import android.util.AttributeSet; 10 | import android.util.Log; 11 | import android.view.MotionEvent; 12 | import android.view.View; 13 | import android.view.animation.AnticipateInterpolator; 14 | import android.view.animation.BounceInterpolator; 15 | import android.widget.ListView; 16 | import android.widget.OverScroller; 17 | import android.widget.ScrollView; 18 | 19 | import java.lang.reflect.Field; 20 | 21 | /** 22 | * Created by yangsp on 2016/11/14. 23 | */ 24 | public class DoubleScrollView extends ScrollView { 25 | public DoubleScrollView(Context context) { 26 | super(context); 27 | } 28 | 29 | public DoubleScrollView(Context context, AttributeSet attrs) { 30 | super(context, attrs); 31 | } 32 | 33 | public DoubleScrollView(Context context, AttributeSet attrs, int defStyleAttr) { 34 | super(context, attrs, defStyleAttr); 35 | } 36 | 37 | @TargetApi(Build.VERSION_CODES.LOLLIPOP) 38 | public DoubleScrollView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 39 | super(context, attrs, defStyleAttr, defStyleRes); 40 | } 41 | 42 | private View mTitle; 43 | 44 | public void setupTitleView(View view) { 45 | mTitle = view; 46 | } 47 | 48 | private View mContentView; 49 | 50 | public void setContentView(View view) { 51 | this.mContentView = view; 52 | } 53 | 54 | private View scrollableView; 55 | 56 | public void setContentInnerScrollableView(View scrollableView) { 57 | this.scrollableView = scrollableView; 58 | } 59 | 60 | private int maxMoveY; 61 | private int tabHeight; 62 | private float mFirstY,mFirstX; 63 | private Matrix eventMatrix; 64 | private boolean isIntercept; 65 | 66 | public boolean onInterceptTouchEvent(MotionEvent ev) { 67 | if (isIntercept) { 68 | return true; 69 | } 70 | return super.onInterceptTouchEvent(ev); 71 | } 72 | 73 | 74 | @Override 75 | public boolean dispatchTouchEvent(MotionEvent event) { 76 | if (mTitle == null || mContentView == null) { 77 | return super.dispatchTouchEvent(event); 78 | } 79 | 80 | if (maxMoveY == 0) { 81 | maxMoveY = mTitle.getMeasuredHeight(); 82 | } 83 | 84 | isIntercept = false; 85 | 86 | switch (event.getAction()) { 87 | case MotionEvent.ACTION_DOWN: 88 | mFirstY = event.getY(); 89 | mFirstX = event.getX(); 90 | break; 91 | case MotionEvent.ACTION_MOVE: 92 | if (scrollableView != null) { 93 | float mCurrentY = event.getY(); 94 | float mCurrentX = event.getX(); 95 | 96 | float detalX = mCurrentX - mFirstX; 97 | float detalY = mCurrentY - mFirstY; 98 | 99 | if (Math.abs(detalY) < Math.abs(detalX)) { 100 | break; 101 | } 102 | 103 | 104 | if (tabHeight == 0) { 105 | tabHeight = mContentView.getMeasuredHeight() - scrollableView.getMeasuredHeight(); 106 | } 107 | eventMatrix = new Matrix(); 108 | eventMatrix.setTranslate(0, -tabHeight); 109 | 110 | boolean isDown = mCurrentY > mFirstY; 111 | boolean isUp = mCurrentY < mFirstY; 112 | 113 | if (isUp) { 114 | if (getScrollY() >= maxMoveY) { 115 | isIntercept = true; 116 | event.transform(eventMatrix); 117 | return scrollableView.dispatchTouchEvent(event); 118 | } 119 | } else if (isDown) { 120 | if (!ViewUtil.isScrollToTop(scrollableView)) { 121 | isIntercept = true; 122 | event.transform(eventMatrix); 123 | return scrollableView.dispatchTouchEvent(event); 124 | } 125 | } 126 | } 127 | break; 128 | case MotionEvent.ACTION_UP: 129 | 130 | break; 131 | } 132 | return super.dispatchTouchEvent(event); 133 | } 134 | 135 | } 136 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/DoubleScrollViewPager.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.content.Context; 4 | import android.support.v4.view.ViewPager; 5 | import android.util.AttributeSet; 6 | import android.view.View; 7 | 8 | /** 9 | * Created by yangsp on 2016/11/14. 10 | */ 11 | public class DoubleScrollViewPager extends ViewPager { 12 | public DoubleScrollViewPager(Context context) { 13 | super(context); 14 | } 15 | 16 | public DoubleScrollViewPager(Context context, AttributeSet attrs) { 17 | super(context, attrs); 18 | } 19 | 20 | private int tagHeight; 21 | 22 | public void setTagHeight(int height) { 23 | tagHeight = height; 24 | requestLayout(); 25 | } 26 | 27 | @Override 28 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 29 | if (tagHeight > 0) { 30 | heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(tagHeight, View.MeasureSpec.EXACTLY); 31 | } 32 | super.onMeasure(widthMeasureSpec, heightMeasureSpec); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/Fragment1.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.app.Fragment; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | 10 | /** 11 | * Created by yangsp on 2016/11/14. 12 | */ 13 | public class Fragment1 extends BaseListFragment { 14 | @Nullable 15 | @Override 16 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 17 | return inflater.inflate(R.layout.layout_normal,null); 18 | } 19 | 20 | @Override 21 | View getSlidableView() { 22 | return null; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/Fragment2.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.app.Fragment; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | import android.widget.ArrayAdapter; 10 | import android.widget.ListView; 11 | import android.widget.SimpleAdapter; 12 | 13 | import java.util.Random; 14 | 15 | /** 16 | * Created by yangsp on 2016/11/14. 17 | */ 18 | public class Fragment2 extends BaseListFragment { 19 | public ListView listView; 20 | 21 | @Nullable 22 | @Override 23 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 24 | View view = inflater.inflate(R.layout.layout_listview,null); 25 | listView = (ListView) view.findViewById(R.id.listView); 26 | String[] data = new String[100]; 27 | for (int i = 0; i < 100; i++) { 28 | data[i] = new Random().nextDouble()+""; 29 | } 30 | ArrayAdapter adapter = new ArrayAdapter(getContext(),android.R.layout.simple_list_item_1,data); 31 | listView.setAdapter(adapter); 32 | return view; 33 | } 34 | 35 | @Override 36 | View getSlidableView() { 37 | return listView; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/Fragment3.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v7.widget.GridLayoutManager; 7 | import android.support.v7.widget.RecyclerView; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.ArrayAdapter; 12 | import android.widget.ListView; 13 | 14 | import java.util.Random; 15 | 16 | /** 17 | * Created by yangsp on 2016/11/14. 18 | */ 19 | public class Fragment3 extends BaseListFragment { 20 | private RecyclerView recyclerView; 21 | @Nullable 22 | @Override 23 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 24 | View view = inflater.inflate(R.layout.layout_recyclerview,null); 25 | recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView); 26 | recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 2)); 27 | recyclerView.setAdapter(new NormalRecyclerViewAdapter(getContext())); 28 | 29 | //fix bug: recyclerView & scrollView 30 | //see http://stackoverflow.com/questions/38074949/recyclerview-inside-scrollview-some-items-are-not-shown 31 | recyclerView.setNestedScrollingEnabled(false); 32 | return view; 33 | } 34 | 35 | @Override 36 | View getSlidableView() { 37 | return recyclerView; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/Fragment4.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | import android.widget.ArrayAdapter; 9 | import android.widget.ListView; 10 | import android.widget.ScrollView; 11 | 12 | import java.util.Random; 13 | 14 | /** 15 | * Created by yangsp on 2016/11/14. 16 | */ 17 | public class Fragment4 extends BaseListFragment { 18 | public ScrollView scrollView; 19 | 20 | @Nullable 21 | @Override 22 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 23 | View view = inflater.inflate(R.layout.layout_scrollview,null); 24 | scrollView = (ScrollView) view.findViewById(R.id.scrollView); 25 | return view; 26 | } 27 | 28 | @Override 29 | View getSlidableView() { 30 | return scrollView; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/FragmentSina.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.widget.SwipeRefreshLayout; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | import android.widget.ArrayAdapter; 10 | import android.widget.ListView; 11 | 12 | import java.util.Random; 13 | 14 | /** 15 | * Created by george.yang on 16/11/15. 16 | */ 17 | 18 | public class FragmentSina extends BaseListFragment { 19 | private DSRefView layout; 20 | private SwipeRefreshLayout refreshLayout; 21 | @Nullable 22 | @Override 23 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 24 | View view = inflater.inflate(R.layout.layout_sina,null); 25 | refreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.refreshLayout); 26 | refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 27 | @Override 28 | public void onRefresh() { 29 | refreshLayout.postDelayed(new Runnable() { 30 | @Override 31 | public void run() { 32 | refreshLayout.setRefreshing(false); 33 | } 34 | },3000); 35 | } 36 | }); 37 | layout = (DSRefView) view.findViewById(R.id.layout); 38 | ListView listView = (ListView) layout.findViewById(R.id.listView); 39 | String[] data = new String[100]; 40 | for (int i = 0; i < 100; i++) { 41 | data[i] = new Random().nextDouble()+""; 42 | } 43 | ArrayAdapter adapter = new ArrayAdapter(getContext(),android.R.layout.simple_list_item_1,data); 44 | listView.setAdapter(adapter); 45 | layout.setSlideableView(listView); 46 | return view; 47 | } 48 | 49 | 50 | @Override 51 | View getSlidableView() { 52 | return layout; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/MainActivity.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.content.Intent; 4 | import android.support.design.widget.TabLayout; 5 | import android.support.v4.view.ViewPager; 6 | import android.support.v7.app.AppCompatActivity; 7 | import android.os.Bundle; 8 | import android.view.View; 9 | 10 | 11 | public class MainActivity extends AppCompatActivity { 12 | private TabLayout tabLayout; 13 | private DoubleScrollView scrollView; 14 | private DoubleScrollViewPager viewPager; 15 | private SAdapter adapter; 16 | private View layoutTabTitle; 17 | 18 | @Override 19 | protected void onCreate(Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | setContentView(R.layout.activity_listview); 22 | 23 | scrollView = (DoubleScrollView) findViewById(R.id.layoutContent); 24 | scrollView.setupTitleView(findViewById(R.id.layoutTop)); 25 | scrollView.setContentView(findViewById(R.id.layoutContentBottom)); 26 | tabLayout = (TabLayout) findViewById(R.id.tabLayout); 27 | 28 | viewPager = (DoubleScrollViewPager) findViewById(R.id.viewPager); 29 | layoutTabTitle = findViewById(R.id.layoutTabTitle); 30 | viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 31 | @Override 32 | public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 33 | 34 | } 35 | 36 | @Override 37 | public void onPageSelected(int position) { 38 | scrollView.setContentInnerScrollableView(adapter.getSlidableView(position)); 39 | } 40 | 41 | @Override 42 | public void onPageScrollStateChanged(int state) { 43 | 44 | } 45 | }); 46 | adapter = new SAdapter(getSupportFragmentManager()); 47 | viewPager.setAdapter(adapter); 48 | 49 | tabLayout.setupWithViewPager(viewPager); 50 | 51 | scrollView.postDelayed(new Runnable() { 52 | @Override 53 | public void run() { 54 | scrollView.setContentInnerScrollableView(adapter.getSlidableView(0)); 55 | viewPager.setTagHeight(scrollView.getMeasuredHeight() - layoutTabTitle.getMeasuredHeight()); 56 | } 57 | },100); 58 | 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/NormalRecyclerViewAdapter.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.content.Context; 4 | import android.support.v7.widget.RecyclerView; 5 | import android.view.Gravity; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | import android.widget.TextView; 10 | 11 | /** 12 | * Created by yangsp on 2016/11/14. 13 | */ 14 | public class NormalRecyclerViewAdapter extends RecyclerView.Adapter { 15 | private final LayoutInflater mLayoutInflater; 16 | private final Context mContext; 17 | 18 | public NormalRecyclerViewAdapter(Context context) { 19 | mContext = context; 20 | mLayoutInflater = LayoutInflater.from(context); 21 | } 22 | 23 | @Override 24 | public NormalTextViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 25 | return new NormalTextViewHolder(mLayoutInflater.inflate(android.R.layout.simple_list_item_1, parent, false)); 26 | } 27 | 28 | @Override 29 | public void onBindViewHolder(NormalTextViewHolder holder, int position) { 30 | holder.mTextView.setText(position+""); 31 | } 32 | 33 | @Override 34 | public int getItemCount() { 35 | return 100; 36 | } 37 | 38 | public static class NormalTextViewHolder extends RecyclerView.ViewHolder { 39 | TextView mTextView; 40 | 41 | NormalTextViewHolder(View view) { 42 | super(view); 43 | mTextView = (TextView) view.findViewById(android.R.id.text1); 44 | mTextView.setGravity(Gravity.CENTER); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/SAdapter.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.support.v4.app.Fragment; 4 | import android.support.v4.app.FragmentManager; 5 | import android.support.v4.app.FragmentStatePagerAdapter; 6 | import android.view.View; 7 | 8 | import java.util.ArrayList; 9 | import java.util.List; 10 | 11 | /** 12 | * Created by yangsp on 2016/11/14. 13 | */ 14 | public class SAdapter extends FragmentStatePagerAdapter { 15 | private List list; 16 | private static final String[] titles = new String[]{"normal","list","recy","scroll","sina"}; 17 | 18 | public SAdapter(FragmentManager fm) { 19 | super(fm); 20 | list = new ArrayList<>(); 21 | list.add(new Fragment1()); 22 | list.add(new Fragment2()); 23 | list.add(new Fragment3()); 24 | list.add(new Fragment4()); 25 | list.add(new FragmentSina()); 26 | } 27 | 28 | public View getSlidableView (int index) { 29 | return list.get(index).getSlidableView(); 30 | } 31 | 32 | @Override 33 | public Fragment getItem(int position) { 34 | return list.get(position); 35 | } 36 | 37 | @Override 38 | public int getCount() { 39 | return titles.length; 40 | } 41 | 42 | @Override 43 | public CharSequence getPageTitle(int position) { 44 | return titles[position]; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/cn/georgeyang/doublescroll/ViewUtil.java: -------------------------------------------------------------------------------- 1 | package cn.georgeyang.doublescroll; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.View; 5 | import android.view.ViewGroup; 6 | import android.widget.ListView; 7 | import android.widget.ScrollView; 8 | 9 | /** 10 | * Created by george.yang on 16/11/16. 11 | */ 12 | 13 | public class ViewUtil { 14 | public static boolean isScrollToTop(View view) { 15 | if (view instanceof ListView) { 16 | ListView listView = (ListView) view; 17 | int first = listView.getFirstVisiblePosition(); 18 | return first == 0; 19 | } else if (view instanceof RecyclerView) { 20 | RecyclerView recyclerView = (RecyclerView) view; 21 | return !recyclerView.canScrollVertically(-1); 22 | } else if (view instanceof ScrollView) { 23 | ScrollView scrollView = (ScrollView) view; 24 | return scrollView.getScrollY() == 0; 25 | } else if (view instanceof DSRefView) { 26 | DSRefView dsRefView = (DSRefView) view; 27 | return dsRefView.isReleaseTouch(); 28 | } 29 | return true; 30 | } 31 | 32 | 33 | public static void scrollToTop (View view) { 34 | if (view instanceof ScrollView) { 35 | ScrollView scrollView = (ScrollView) view; 36 | scrollView.smoothScrollTo(0,0); 37 | } else if (view instanceof ListView) { 38 | ListView listView = (ListView) view; 39 | listView.setSelection(0); 40 | } 41 | } 42 | 43 | public static T findView(View view, Class tClass) { 44 | if (view.getClass() == tClass) { 45 | return (T) view; 46 | } else if (view instanceof ViewGroup) { 47 | ViewGroup viewGroup = (ViewGroup) view; 48 | for (int i=0;i 2 | 5 | 6 | 10 | 11 | 15 | 16 | 22 | 23 | 27 | 28 | 34 | 35 | 43 | 44 | 45 | 53 | 54 | 58 | 59 | 65 | 66 | 74 | 75 | 82 | 83 | 91 | 92 | 93 | 94 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 114 | 115 | 121 | 122 | 128 | 129 | 135 | 136 | 137 | 144 | 145 | 146 | 147 | 148 | 154 | 155 | 162 | 163 | 164 | 171 | 172 | 173 | 174 | 180 | 181 | 187 | 188 | 189 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 207 | 208 | 213 | 214 | 219 | 220 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_dsview.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_listview.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 16 | 17 | 21 | 22 | 26 | 27 | 28 | 29 | 34 | 35 | 39 | 40 | 44 | 45 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_recyclerview.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_scrollview.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | 15 | 16 | 17 | 22 | 23 | 24 | 28 | 29 | 33 | 34 | 38 | 39 | 40 | 41 | 42 | 47 | 48 | 49 | 53 | 54 | 58 | 59 | 63 | 64 | 65 | 66 | 71 | 72 | 73 | 77 | 78 | 82 | 83 | 87 | 88 | 89 | 90 | 95 | 96 | 97 | 101 | 102 | 106 | 107 | 111 | 112 | 113 | 114 | 119 | 120 | 121 | 125 | 126 | 130 | 131 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_sina.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/georgeyang1024/DoubleScroll/d6274cf26d02788dd73c0a1d168ffedde6426be3/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/georgeyang1024/DoubleScroll/d6274cf26d02788dd73c0a1d168ffedde6426be3/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/georgeyang1024/DoubleScroll/d6274cf26d02788dd73c0a1d168ffedde6426be3/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/button_triangle_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/georgeyang1024/DoubleScroll/d6274cf26d02788dd73c0a1d168ffedde6426be3/app/src/main/res/mipmap-xxhdpi/button_triangle_up.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/georgeyang1024/DoubleScroll/d6274cf26d02788dd73c0a1d168ffedde6426be3/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/georgeyang1024/DoubleScroll/d6274cf26d02788dd73c0a1d168ffedde6426be3/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/values-w120dp/dps.xml: -------------------------------------------------------------------------------- 1 | 2 | 1.0dp 3 | 2.0dp 4 | 3.0dp 5 | 4.0dp 6 | 6.0dp 7 | 7.0dp 8 | 8.0dp 9 | 9.0dp 10 | 10.0dp 11 | 12.0dp 12 | 13.0dp 13 | 14.0dp 14 | 15.0dp 15 | 16.0dp 16 | 18.0dp 17 | 19.0dp 18 | 20.0dp 19 | 21.0dp 20 | 22.0dp 21 | 24.0dp 22 | 25.0dp 23 | 26.0dp 24 | 27.0dp 25 | 28.0dp 26 | 30.0dp 27 | 31.0dp 28 | 32.0dp 29 | 33.0dp 30 | 34.0dp 31 | 36.0dp 32 | 37.0dp 33 | 38.0dp 34 | 39.0dp 35 | 40.0dp 36 | 42.0dp 37 | 43.0dp 38 | 44.0dp 39 | 45.0dp 40 | 46.0dp 41 | 48.0dp 42 | 49.0dp 43 | 50.0dp 44 | 51.0dp 45 | 52.0dp 46 | 54.0dp 47 | 55.0dp 48 | 56.0dp 49 | 57.0dp 50 | 58.0dp 51 | 60.0dp 52 | 61.0dp 53 | 62.0dp 54 | 63.0dp 55 | 64.0dp 56 | 66.0dp 57 | 67.0dp 58 | 68.0dp 59 | 69.0dp 60 | 70.0dp 61 | 72.0dp 62 | 73.0dp 63 | 74.0dp 64 | 75.0dp 65 | 76.0dp 66 | 78.0dp 67 | 79.0dp 68 | 80.0dp 69 | 81.0dp 70 | 82.0dp 71 | 84.0dp 72 | 85.0dp 73 | 86.0dp 74 | 87.0dp 75 | 88.0dp 76 | 90.0dp 77 | 91.0dp 78 | 92.0dp 79 | 93.0dp 80 | 94.0dp 81 | 96.0dp 82 | 97.0dp 83 | 98.0dp 84 | 99.0dp 85 | 100.0dp 86 | 102.0dp 87 | 103.0dp 88 | 104.0dp 89 | 105.0dp 90 | 106.0dp 91 | 108.0dp 92 | 109.0dp 93 | 110.0dp 94 | 111.0dp 95 | 112.0dp 96 | 114.0dp 97 | 115.0dp 98 | 116.0dp 99 | 117.0dp 100 | 118.0dp 101 | 120.0dp 102 | 0.16dp 103 | 0.32dp 104 | 0.48dp 105 | 0.64dp 106 | 0.79dp 107 | 0.96dp 108 | 1.12dp 109 | 1.28dp 110 | 1.44dp 111 | 1.59dp 112 | 1.76dp 113 | 1.92dp 114 | 2.08dp 115 | 2.24dp 116 | 2.39dp 117 | 2.56dp 118 | 2.72dp 119 | 2.88dp 120 | 3.04dp 121 | 3.19dp 122 | 3.36dp 123 | 3.52dp 124 | 3.67dp 125 | 3.84dp 126 | 4.0dp 127 | 4.16dp 128 | 4.31dp 129 | 4.48dp 130 | 4.64dp 131 | 4.79dp 132 | 4.96dp 133 | 5.12dp 134 | 5.28dp 135 | 5.44dp 136 | 5.6dp 137 | 5.76dp 138 | 5.92dp 139 | 6.08dp 140 | 6.24dp 141 | 6.39dp 142 | 6.56dp 143 | 6.72dp 144 | 6.87dp 145 | 7.04dp 146 | 7.2dp 147 | 7.35dp 148 | 7.52dp 149 | 7.68dp 150 | 7.83dp 151 | 8.0dp 152 | 8.16dp 153 | 8.32dp 154 | 8.47dp 155 | 8.63dp 156 | 8.8dp 157 | 8.96dp 158 | 9.12dp 159 | 9.28dp 160 | 9.43dp 161 | 9.59dp 162 | 9.76dp 163 | 9.92dp 164 | 10.08dp 165 | 10.24dp 166 | 10.4dp 167 | 10.56dp 168 | 10.71dp 169 | 10.88dp 170 | 11.04dp 171 | 11.2dp 172 | 11.36dp 173 | 11.52dp 174 | 11.67dp 175 | 11.84dp 176 | 12.0dp 177 | 12.16dp 178 | 12.32dp 179 | 12.48dp 180 | 12.64dp 181 | 12.79dp 182 | 12.96dp 183 | 13.12dp 184 | 13.28dp 185 | 13.44dp 186 | 13.6dp 187 | 13.75dp 188 | 13.92dp 189 | 14.08dp 190 | 14.24dp 191 | 14.4dp 192 | 14.56dp 193 | 14.71dp 194 | 14.88dp 195 | 15.04dp 196 | 15.2dp 197 | 15.36dp 198 | 15.52dp 199 | 15.67dp 200 | 15.83dp 201 | 16.0dp 202 | 16.16dp 203 | 16.32dp 204 | 16.48dp 205 | 16.64dp 206 | 16.79dp 207 | 16.95dp 208 | 17.11dp 209 | 17.27dp 210 | 17.44dp 211 | 17.6dp 212 | 17.76dp 213 | 17.92dp 214 | 18.08dp 215 | 18.24dp 216 | 18.4dp 217 | 18.56dp 218 | 18.71dp 219 | 18.87dp 220 | 19.03dp 221 | 19.19dp 222 | 19.35dp 223 | 19.52dp 224 | 19.68dp 225 | 19.84dp 226 | 20.0dp 227 | 20.16dp 228 | 20.32dp 229 | 20.48dp 230 | 20.64dp 231 | 20.8dp 232 | 20.96dp 233 | 21.12dp 234 | 21.28dp 235 | 21.43dp 236 | 21.6dp 237 | 21.76dp 238 | 21.92dp 239 | 22.08dp 240 | 22.24dp 241 | 22.4dp 242 | 22.56dp 243 | 22.72dp 244 | 22.88dp 245 | 23.04dp 246 | 23.2dp 247 | 23.35dp 248 | 23.51dp 249 | 23.68dp 250 | 23.84dp 251 | 24.0dp 252 | 24.16dp 253 | 24.32dp 254 | 24.48dp 255 | 24.64dp 256 | 24.8dp 257 | 24.96dp 258 | 25.12dp 259 | 25.28dp 260 | 25.43dp 261 | 25.59dp 262 | 25.76dp 263 | 25.92dp 264 | 26.08dp 265 | 26.24dp 266 | 26.4dp 267 | 26.56dp 268 | 26.72dp 269 | 26.88dp 270 | 27.04dp 271 | 27.2dp 272 | 27.35dp 273 | 27.51dp 274 | 27.68dp 275 | 27.84dp 276 | 28.0dp 277 | 28.16dp 278 | 28.32dp 279 | 28.48dp 280 | 28.64dp 281 | 28.8dp 282 | 28.96dp 283 | 29.12dp 284 | 29.28dp 285 | 29.43dp 286 | 29.59dp 287 | 29.76dp 288 | 29.92dp 289 | 30.08dp 290 | 30.24dp 291 | 30.4dp 292 | 30.56dp 293 | 30.72dp 294 | 30.88dp 295 | 31.04dp 296 | 31.2dp 297 | 31.35dp 298 | 31.51dp 299 | 31.67dp 300 | 31.84dp 301 | 32.0dp 302 | 32.16dp 303 | 32.32dp 304 | 32.48dp 305 | 32.64dp 306 | 32.8dp 307 | 32.96dp 308 | 33.12dp 309 | 33.28dp 310 | 33.43dp 311 | 33.59dp 312 | 33.75dp 313 | 33.91dp 314 | 34.07dp 315 | 34.23dp 316 | 34.39dp 317 | 34.55dp 318 | 34.71dp 319 | 34.88dp 320 | 35.04dp 321 | 35.2dp 322 | 35.36dp 323 | 35.52dp 324 | 35.68dp 325 | 35.84dp 326 | 36.0dp 327 | 36.16dp 328 | 36.32dp 329 | 36.48dp 330 | 36.64dp 331 | 36.8dp 332 | 36.96dp 333 | 37.12dp 334 | 37.28dp 335 | 37.43dp 336 | 37.59dp 337 | 37.75dp 338 | 37.91dp 339 | 38.07dp 340 | 38.23dp 341 | 38.39dp 342 | 38.55dp 343 | 38.71dp 344 | 38.87dp 345 | 39.04dp 346 | 39.2dp 347 | 39.36dp 348 | 39.52dp 349 | 39.68dp 350 | 39.84dp 351 | 40.0dp 352 | 40.16dp 353 | 40.32dp 354 | 40.48dp 355 | 40.64dp 356 | 40.8dp 357 | 40.96dp 358 | 41.12dp 359 | 41.28dp 360 | 41.44dp 361 | 41.6dp 362 | 41.76dp 363 | 41.92dp 364 | 42.08dp 365 | 42.24dp 366 | 42.4dp 367 | 42.56dp 368 | 42.71dp 369 | 42.87dp 370 | 43.04dp 371 | 43.2dp 372 | 43.36dp 373 | 43.52dp 374 | 43.68dp 375 | 43.84dp 376 | 44.0dp 377 | 44.16dp 378 | 44.32dp 379 | 44.48dp 380 | 44.64dp 381 | 44.8dp 382 | 44.96dp 383 | 45.12dp 384 | 45.28dp 385 | 45.44dp 386 | 45.6dp 387 | 45.76dp 388 | 45.92dp 389 | 46.08dp 390 | 46.24dp 391 | 46.4dp 392 | 46.56dp 393 | 46.71dp 394 | 46.87dp 395 | 47.03dp 396 | 47.2dp 397 | 47.36dp 398 | 47.52dp 399 | 47.68dp 400 | 47.84dp 401 | 48.0dp 402 | 48.16dp 403 | 48.32dp 404 | 48.48dp 405 | 48.64dp 406 | 48.8dp 407 | 48.96dp 408 | 49.12dp 409 | 49.28dp 410 | 49.44dp 411 | 49.6dp 412 | 49.76dp 413 | 49.92dp 414 | 50.08dp 415 | 50.24dp 416 | 50.4dp 417 | 50.56dp 418 | 50.71dp 419 | 50.87dp 420 | 51.03dp 421 | 51.19dp 422 | 51.36dp 423 | 51.52dp 424 | 51.68dp 425 | 51.84dp 426 | 52.0dp 427 | 52.16dp 428 | 52.32dp 429 | 52.48dp 430 | 52.64dp 431 | 52.8dp 432 | 52.96dp 433 | 53.12dp 434 | 53.28dp 435 | 53.44dp 436 | 53.6dp 437 | 53.76dp 438 | 53.92dp 439 | 54.08dp 440 | 54.24dp 441 | 54.4dp 442 | 54.56dp 443 | 54.71dp 444 | 54.87dp 445 | 55.03dp 446 | 55.19dp 447 | 55.36dp 448 | 55.52dp 449 | 55.68dp 450 | 55.84dp 451 | 56.0dp 452 | 56.16dp 453 | 56.32dp 454 | 56.48dp 455 | 56.64dp 456 | 56.8dp 457 | 56.96dp 458 | 57.12dp 459 | 57.28dp 460 | 57.44dp 461 | 57.6dp 462 | 57.76dp 463 | 57.92dp 464 | 58.08dp 465 | 58.24dp 466 | 58.4dp 467 | 58.56dp 468 | 58.71dp 469 | 58.87dp 470 | 59.03dp 471 | 59.19dp 472 | 59.35dp 473 | 59.52dp 474 | 59.68dp 475 | 59.84dp 476 | 60.0dp 477 | 60.16dp 478 | 60.32dp 479 | 60.48dp 480 | 60.64dp 481 | 60.8dp 482 | 60.96dp 483 | 61.12dp 484 | 61.28dp 485 | 61.44dp 486 | 61.6dp 487 | 61.76dp 488 | 61.92dp 489 | 62.08dp 490 | 62.24dp 491 | 62.4dp 492 | 62.56dp 493 | 62.71dp 494 | 62.87dp 495 | 63.03dp 496 | 63.19dp 497 | 63.35dp 498 | 63.52dp 499 | 63.68dp 500 | 63.84dp 501 | 64.0dp 502 | 64.15dp 503 | 64.32dp 504 | 64.47dp 505 | 64.64dp 506 | 64.79dp 507 | 64.96dp 508 | 65.11dp 509 | 65.28dp 510 | 65.43dp 511 | 65.6dp 512 | 65.76dp 513 | 65.92dp 514 | 66.08dp 515 | 66.24dp 516 | 66.4dp 517 | 66.56dp 518 | 66.72dp 519 | 66.87dp 520 | 67.04dp 521 | 67.19dp 522 | 67.36dp 523 | 67.51dp 524 | 67.68dp 525 | 67.83dp 526 | 68.0dp 527 | 68.15dp 528 | 68.32dp 529 | 68.47dp 530 | 68.64dp 531 | 68.79dp 532 | 68.96dp 533 | 69.11dp 534 | 69.28dp 535 | 69.43dp 536 | 69.6dp 537 | 69.76dp 538 | 69.92dp 539 | 70.08dp 540 | 70.24dp 541 | 70.4dp 542 | 70.56dp 543 | 70.72dp 544 | 70.87dp 545 | 71.04dp 546 | 71.19dp 547 | 71.36dp 548 | 71.51dp 549 | 71.68dp 550 | 71.83dp 551 | 72.0dp 552 | 72.15dp 553 | 72.32dp 554 | 72.47dp 555 | 72.64dp 556 | 72.79dp 557 | 72.96dp 558 | 73.11dp 559 | 73.28dp 560 | 73.43dp 561 | 73.6dp 562 | 73.76dp 563 | 73.92dp 564 | 74.08dp 565 | 74.24dp 566 | 74.4dp 567 | 74.56dp 568 | 74.72dp 569 | 74.87dp 570 | 75.04dp 571 | 75.19dp 572 | 75.36dp 573 | 75.51dp 574 | 75.68dp 575 | 75.83dp 576 | 76.0dp 577 | 76.15dp 578 | 76.32dp 579 | 76.47dp 580 | 76.64dp 581 | 76.79dp 582 | 76.96dp 583 | 77.11dp 584 | 77.28dp 585 | 77.43dp 586 | 77.6dp 587 | 77.75dp 588 | 77.92dp 589 | 78.08dp 590 | 78.24dp 591 | 78.4dp 592 | 78.56dp 593 | 78.72dp 594 | 78.87dp 595 | 79.04dp 596 | 79.19dp 597 | 79.36dp 598 | 79.51dp 599 | 79.68dp 600 | 79.83dp 601 | 80.0dp 602 | 80.15dp 603 | 80.32dp 604 | 80.47dp 605 | 80.64dp 606 | 80.79dp 607 | 80.96dp 608 | 81.11dp 609 | 81.28dp 610 | 81.43dp 611 | 81.6dp 612 | 81.75dp 613 | 81.92dp 614 | 82.08dp 615 | 82.24dp 616 | 82.4dp 617 | 82.56dp 618 | 82.72dp 619 | 82.88dp 620 | 83.04dp 621 | 83.2dp 622 | 83.36dp 623 | 83.52dp 624 | 83.68dp 625 | 83.84dp 626 | 84.0dp 627 | 84.16dp 628 | 84.32dp 629 | 84.48dp 630 | 84.64dp 631 | 84.8dp 632 | 84.96dp 633 | 85.12dp 634 | 85.28dp 635 | 85.43dp 636 | 85.6dp 637 | 85.75dp 638 | 85.92dp 639 | 86.08dp 640 | 86.24dp 641 | 86.4dp 642 | 86.56dp 643 | 86.72dp 644 | 86.88dp 645 | 87.04dp 646 | 87.2dp 647 | 87.36dp 648 | 87.52dp 649 | 87.68dp 650 | 87.84dp 651 | 88.0dp 652 | 88.16dp 653 | 88.32dp 654 | 88.48dp 655 | 88.64dp 656 | 88.8dp 657 | 88.96dp 658 | 89.12dp 659 | 89.28dp 660 | 89.43dp 661 | 89.6dp 662 | 89.75dp 663 | 89.92dp 664 | 90.07dp 665 | 90.24dp 666 | 90.4dp 667 | 90.56dp 668 | 90.72dp 669 | 90.88dp 670 | 91.04dp 671 | 91.2dp 672 | 91.36dp 673 | 91.52dp 674 | 91.68dp 675 | 91.84dp 676 | 92.0dp 677 | 92.16dp 678 | 92.32dp 679 | 92.48dp 680 | 92.64dp 681 | 92.8dp 682 | 92.96dp 683 | 93.12dp 684 | 93.28dp 685 | 93.43dp 686 | 93.6dp 687 | 93.75dp 688 | 93.92dp 689 | 94.07dp 690 | 94.24dp 691 | 94.4dp 692 | 94.56dp 693 | 94.72dp 694 | 94.88dp 695 | 95.04dp 696 | 95.2dp 697 | 95.36dp 698 | 95.52dp 699 | 95.68dp 700 | 95.84dp 701 | 96.0dp 702 | 96.16dp 703 | 96.32dp 704 | 96.48dp 705 | 96.64dp 706 | 96.8dp 707 | 96.96dp 708 | 97.12dp 709 | 97.28dp 710 | 97.43dp 711 | 97.6dp 712 | 97.75dp 713 | 97.92dp 714 | 98.07dp 715 | 98.24dp 716 | 98.4dp 717 | 98.56dp 718 | 98.72dp 719 | 98.88dp 720 | 99.04dp 721 | 99.2dp 722 | 99.36dp 723 | 99.52dp 724 | 99.68dp 725 | 99.84dp 726 | 100.0dp 727 | 100.16dp 728 | 100.32dp 729 | 100.48dp 730 | 100.64dp 731 | 100.8dp 732 | 100.96dp 733 | 101.12dp 734 | 101.28dp 735 | 101.43dp 736 | 101.6dp 737 | 101.75dp 738 | 101.92dp 739 | 102.07dp 740 | 102.24dp 741 | 102.39dp 742 | 102.56dp 743 | 102.72dp 744 | 102.88dp 745 | 103.04dp 746 | 103.2dp 747 | 103.36dp 748 | 103.52dp 749 | 103.68dp 750 | 103.84dp 751 | 104.0dp 752 | 104.16dp 753 | 104.32dp 754 | 104.48dp 755 | 104.64dp 756 | 104.8dp 757 | 104.96dp 758 | 105.12dp 759 | 105.28dp 760 | 105.43dp 761 | 105.6dp 762 | 105.75dp 763 | 105.92dp 764 | 106.07dp 765 | 106.24dp 766 | 106.39dp 767 | 106.56dp 768 | 106.72dp 769 | 106.88dp 770 | 107.04dp 771 | 107.2dp 772 | 107.36dp 773 | 107.52dp 774 | 107.68dp 775 | 107.84dp 776 | 108.0dp 777 | 108.16dp 778 | 108.32dp 779 | 108.48dp 780 | 108.64dp 781 | 108.8dp 782 | 108.96dp 783 | 109.12dp 784 | 109.28dp 785 | 109.43dp 786 | 109.6dp 787 | 109.75dp 788 | 109.92dp 789 | 110.07dp 790 | 110.24dp 791 | 110.39dp 792 | 110.56dp 793 | 110.72dp 794 | 110.88dp 795 | 111.04dp 796 | 111.2dp 797 | 111.36dp 798 | 111.52dp 799 | 111.68dp 800 | 111.84dp 801 | 112.0dp 802 | 112.16dp 803 | 112.32dp 804 | 112.48dp 805 | 112.64dp 806 | 112.8dp 807 | 112.96dp 808 | 113.12dp 809 | 113.28dp 810 | 113.43dp 811 | 113.6dp 812 | 113.75dp 813 | 113.92dp 814 | 114.07dp 815 | 114.24dp 816 | 114.39dp 817 | 114.56dp 818 | 114.72dp 819 | 114.88dp 820 | 115.04dp 821 | 115.2dp 822 | 115.36dp 823 | 115.52dp 824 | 115.68dp 825 | 115.84dp 826 | 116.0dp 827 | 116.16dp 828 | 116.32dp 829 | 116.48dp 830 | 116.64dp 831 | 116.8dp 832 | 116.96dp 833 | 117.12dp 834 | 117.28dp 835 | 117.43dp 836 | 117.6dp 837 | 117.75dp 838 | 117.92dp 839 | 118.07dp 840 | 118.24dp 841 | 118.39dp 842 | 118.56dp 843 | 118.71dp 844 | 118.88dp 845 | 119.04dp 846 | 119.2dp 847 | 119.36dp 848 | 119.52dp 849 | 119.68dp 850 | 119.84dp 851 | 120.0dp 852 | 240.0dp 853 | 128.0dp 854 | -------------------------------------------------------------------------------- /app/src/main/res/values-w320dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 1dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values-w350dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 10dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values-w400dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 100dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values-w400dp/dps.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0dp 3 | 8.0dp 4 | 12.0dp 5 | 16.0dp 6 | 20.0dp 7 | 24.0dp 8 | 28.0dp 9 | 32.0dp 10 | 36.0dp 11 | 40.0dp 12 | 44.0dp 13 | 48.0dp 14 | 52.0dp 15 | 56.0dp 16 | 60.0dp 17 | 64.0dp 18 | 68.0dp 19 | 72.0dp 20 | 76.0dp 21 | 80.0dp 22 | 84.0dp 23 | 88.0dp 24 | 92.0dp 25 | 96.0dp 26 | 100.0dp 27 | 104.0dp 28 | 108.0dp 29 | 112.0dp 30 | 116.0dp 31 | 120.0dp 32 | 124.0dp 33 | 128.0dp 34 | 132.0dp 35 | 136.0dp 36 | 140.0dp 37 | 144.0dp 38 | 148.0dp 39 | 152.0dp 40 | 156.0dp 41 | 160.0dp 42 | 164.0dp 43 | 168.0dp 44 | 172.0dp 45 | 176.0dp 46 | 180.0dp 47 | 184.0dp 48 | 188.0dp 49 | 192.0dp 50 | 196.0dp 51 | 200.0dp 52 | 204.0dp 53 | 208.0dp 54 | 212.0dp 55 | 216.0dp 56 | 220.0dp 57 | 224.0dp 58 | 228.0dp 59 | 232.0dp 60 | 236.0dp 61 | 240.0dp 62 | 244.0dp 63 | 248.0dp 64 | 252.0dp 65 | 256.0dp 66 | 260.0dp 67 | 264.0dp 68 | 268.0dp 69 | 272.0dp 70 | 276.0dp 71 | 280.0dp 72 | 284.0dp 73 | 288.0dp 74 | 292.0dp 75 | 296.0dp 76 | 300.0dp 77 | 304.0dp 78 | 308.0dp 79 | 312.0dp 80 | 316.0dp 81 | 320.0dp 82 | 324.0dp 83 | 328.0dp 84 | 332.0dp 85 | 336.0dp 86 | 340.0dp 87 | 344.0dp 88 | 348.0dp 89 | 352.0dp 90 | 356.0dp 91 | 360.0dp 92 | 364.0dp 93 | 368.0dp 94 | 372.0dp 95 | 376.0dp 96 | 380.0dp 97 | 384.0dp 98 | 388.0dp 99 | 392.0dp 100 | 396.0dp 101 | 400.0dp 102 | 0.53dp 103 | 1.06dp 104 | 1.6dp 105 | 2.13dp 106 | 2.66dp 107 | 3.2dp 108 | 3.73dp 109 | 4.26dp 110 | 4.8dp 111 | 5.33dp 112 | 5.86dp 113 | 6.4dp 114 | 6.93dp 115 | 7.46dp 116 | 8.0dp 117 | 8.53dp 118 | 9.06dp 119 | 9.6dp 120 | 10.13dp 121 | 10.66dp 122 | 11.2dp 123 | 11.73dp 124 | 12.26dp 125 | 12.8dp 126 | 13.33dp 127 | 13.86dp 128 | 14.4dp 129 | 14.93dp 130 | 15.46dp 131 | 16.0dp 132 | 16.53dp 133 | 17.06dp 134 | 17.6dp 135 | 18.13dp 136 | 18.66dp 137 | 19.2dp 138 | 19.73dp 139 | 20.26dp 140 | 20.8dp 141 | 21.33dp 142 | 21.86dp 143 | 22.4dp 144 | 22.93dp 145 | 23.46dp 146 | 24.0dp 147 | 24.53dp 148 | 25.06dp 149 | 25.6dp 150 | 26.13dp 151 | 26.66dp 152 | 27.2dp 153 | 27.73dp 154 | 28.26dp 155 | 28.8dp 156 | 29.33dp 157 | 29.86dp 158 | 30.4dp 159 | 30.93dp 160 | 31.46dp 161 | 32.0dp 162 | 32.53dp 163 | 33.06dp 164 | 33.6dp 165 | 34.13dp 166 | 34.66dp 167 | 35.2dp 168 | 35.73dp 169 | 36.26dp 170 | 36.8dp 171 | 37.33dp 172 | 37.86dp 173 | 38.4dp 174 | 38.93dp 175 | 39.46dp 176 | 40.0dp 177 | 40.53dp 178 | 41.06dp 179 | 41.6dp 180 | 42.13dp 181 | 42.66dp 182 | 43.2dp 183 | 43.73dp 184 | 44.26dp 185 | 44.8dp 186 | 45.33dp 187 | 45.86dp 188 | 46.4dp 189 | 46.93dp 190 | 47.46dp 191 | 48.0dp 192 | 48.53dp 193 | 49.06dp 194 | 49.6dp 195 | 50.13dp 196 | 50.66dp 197 | 51.2dp 198 | 51.73dp 199 | 52.26dp 200 | 52.8dp 201 | 53.33dp 202 | 53.86dp 203 | 54.4dp 204 | 54.93dp 205 | 55.46dp 206 | 56.0dp 207 | 56.53dp 208 | 57.06dp 209 | 57.6dp 210 | 58.13dp 211 | 58.66dp 212 | 59.2dp 213 | 59.73dp 214 | 60.26dp 215 | 60.8dp 216 | 61.33dp 217 | 61.86dp 218 | 62.4dp 219 | 62.93dp 220 | 63.46dp 221 | 64.0dp 222 | 64.53dp 223 | 65.06dp 224 | 65.6dp 225 | 66.13dp 226 | 66.66dp 227 | 67.2dp 228 | 67.73dp 229 | 68.26dp 230 | 68.8dp 231 | 69.33dp 232 | 69.86dp 233 | 70.4dp 234 | 70.93dp 235 | 71.46dp 236 | 72.0dp 237 | 72.53dp 238 | 73.06dp 239 | 73.6dp 240 | 74.13dp 241 | 74.66dp 242 | 75.2dp 243 | 75.73dp 244 | 76.26dp 245 | 76.8dp 246 | 77.33dp 247 | 77.86dp 248 | 78.4dp 249 | 78.93dp 250 | 79.46dp 251 | 80.0dp 252 | 80.53dp 253 | 81.06dp 254 | 81.6dp 255 | 82.13dp 256 | 82.66dp 257 | 83.2dp 258 | 83.73dp 259 | 84.26dp 260 | 84.8dp 261 | 85.33dp 262 | 85.86dp 263 | 86.4dp 264 | 86.93dp 265 | 87.46dp 266 | 88.0dp 267 | 88.53dp 268 | 89.06dp 269 | 89.6dp 270 | 90.13dp 271 | 90.66dp 272 | 91.2dp 273 | 91.73dp 274 | 92.26dp 275 | 92.8dp 276 | 93.33dp 277 | 93.86dp 278 | 94.4dp 279 | 94.93dp 280 | 95.46dp 281 | 96.0dp 282 | 96.53dp 283 | 97.06dp 284 | 97.6dp 285 | 98.13dp 286 | 98.66dp 287 | 99.2dp 288 | 99.73dp 289 | 100.26dp 290 | 100.8dp 291 | 101.33dp 292 | 101.86dp 293 | 102.4dp 294 | 102.93dp 295 | 103.46dp 296 | 104.0dp 297 | 104.53dp 298 | 105.06dp 299 | 105.6dp 300 | 106.13dp 301 | 106.66dp 302 | 107.2dp 303 | 107.73dp 304 | 108.26dp 305 | 108.8dp 306 | 109.33dp 307 | 109.86dp 308 | 110.4dp 309 | 110.93dp 310 | 111.46dp 311 | 112.0dp 312 | 112.53dp 313 | 113.06dp 314 | 113.6dp 315 | 114.13dp 316 | 114.66dp 317 | 115.2dp 318 | 115.73dp 319 | 116.26dp 320 | 116.8dp 321 | 117.33dp 322 | 117.86dp 323 | 118.4dp 324 | 118.93dp 325 | 119.46dp 326 | 120.0dp 327 | 120.53dp 328 | 121.06dp 329 | 121.6dp 330 | 122.13dp 331 | 122.66dp 332 | 123.2dp 333 | 123.73dp 334 | 124.26dp 335 | 124.8dp 336 | 125.33dp 337 | 125.86dp 338 | 126.4dp 339 | 126.93dp 340 | 127.46dp 341 | 128.0dp 342 | 128.53dp 343 | 129.06dp 344 | 129.6dp 345 | 130.13dp 346 | 130.66dp 347 | 131.2dp 348 | 131.73dp 349 | 132.26dp 350 | 132.8dp 351 | 133.33dp 352 | 133.86dp 353 | 134.4dp 354 | 134.93dp 355 | 135.46dp 356 | 136.0dp 357 | 136.53dp 358 | 137.06dp 359 | 137.6dp 360 | 138.13dp 361 | 138.66dp 362 | 139.2dp 363 | 139.73dp 364 | 140.26dp 365 | 140.8dp 366 | 141.33dp 367 | 141.86dp 368 | 142.4dp 369 | 142.93dp 370 | 143.46dp 371 | 144.0dp 372 | 144.53dp 373 | 145.06dp 374 | 145.6dp 375 | 146.13dp 376 | 146.66dp 377 | 147.2dp 378 | 147.73dp 379 | 148.26dp 380 | 148.8dp 381 | 149.33dp 382 | 149.86dp 383 | 150.4dp 384 | 150.93dp 385 | 151.46dp 386 | 152.0dp 387 | 152.53dp 388 | 153.06dp 389 | 153.6dp 390 | 154.13dp 391 | 154.66dp 392 | 155.2dp 393 | 155.73dp 394 | 156.26dp 395 | 156.8dp 396 | 157.33dp 397 | 157.86dp 398 | 158.4dp 399 | 158.93dp 400 | 159.46dp 401 | 160.0dp 402 | 160.53dp 403 | 161.06dp 404 | 161.6dp 405 | 162.13dp 406 | 162.66dp 407 | 163.2dp 408 | 163.73dp 409 | 164.26dp 410 | 164.8dp 411 | 165.33dp 412 | 165.86dp 413 | 166.4dp 414 | 166.93dp 415 | 167.46dp 416 | 168.0dp 417 | 168.53dp 418 | 169.06dp 419 | 169.6dp 420 | 170.13dp 421 | 170.66dp 422 | 171.2dp 423 | 171.73dp 424 | 172.26dp 425 | 172.8dp 426 | 173.33dp 427 | 173.86dp 428 | 174.4dp 429 | 174.93dp 430 | 175.46dp 431 | 176.0dp 432 | 176.53dp 433 | 177.06dp 434 | 177.6dp 435 | 178.13dp 436 | 178.66dp 437 | 179.2dp 438 | 179.73dp 439 | 180.26dp 440 | 180.8dp 441 | 181.33dp 442 | 181.86dp 443 | 182.4dp 444 | 182.93dp 445 | 183.46dp 446 | 184.0dp 447 | 184.53dp 448 | 185.06dp 449 | 185.6dp 450 | 186.13dp 451 | 186.66dp 452 | 187.2dp 453 | 187.73dp 454 | 188.26dp 455 | 188.8dp 456 | 189.33dp 457 | 189.86dp 458 | 190.4dp 459 | 190.93dp 460 | 191.46dp 461 | 192.0dp 462 | 192.53dp 463 | 193.06dp 464 | 193.6dp 465 | 194.13dp 466 | 194.66dp 467 | 195.2dp 468 | 195.73dp 469 | 196.26dp 470 | 196.8dp 471 | 197.33dp 472 | 197.86dp 473 | 198.4dp 474 | 198.93dp 475 | 199.46dp 476 | 200.0dp 477 | 200.53dp 478 | 201.06dp 479 | 201.6dp 480 | 202.13dp 481 | 202.66dp 482 | 203.2dp 483 | 203.73dp 484 | 204.26dp 485 | 204.8dp 486 | 205.33dp 487 | 205.86dp 488 | 206.4dp 489 | 206.93dp 490 | 207.46dp 491 | 208.0dp 492 | 208.53dp 493 | 209.06dp 494 | 209.6dp 495 | 210.13dp 496 | 210.66dp 497 | 211.2dp 498 | 211.73dp 499 | 212.26dp 500 | 212.8dp 501 | 213.33dp 502 | 213.86dp 503 | 214.4dp 504 | 214.93dp 505 | 215.46dp 506 | 216.0dp 507 | 216.53dp 508 | 217.06dp 509 | 217.6dp 510 | 218.13dp 511 | 218.66dp 512 | 219.2dp 513 | 219.73dp 514 | 220.26dp 515 | 220.8dp 516 | 221.33dp 517 | 221.86dp 518 | 222.4dp 519 | 222.93dp 520 | 223.46dp 521 | 224.0dp 522 | 224.53dp 523 | 225.06dp 524 | 225.6dp 525 | 226.13dp 526 | 226.66dp 527 | 227.2dp 528 | 227.73dp 529 | 228.26dp 530 | 228.8dp 531 | 229.33dp 532 | 229.86dp 533 | 230.4dp 534 | 230.93dp 535 | 231.46dp 536 | 232.0dp 537 | 232.53dp 538 | 233.06dp 539 | 233.6dp 540 | 234.13dp 541 | 234.66dp 542 | 235.2dp 543 | 235.73dp 544 | 236.26dp 545 | 236.8dp 546 | 237.33dp 547 | 237.86dp 548 | 238.4dp 549 | 238.93dp 550 | 239.46dp 551 | 240.0dp 552 | 240.53dp 553 | 241.06dp 554 | 241.6dp 555 | 242.13dp 556 | 242.66dp 557 | 243.2dp 558 | 243.73dp 559 | 244.26dp 560 | 244.8dp 561 | 245.33dp 562 | 245.86dp 563 | 246.4dp 564 | 246.93dp 565 | 247.46dp 566 | 248.0dp 567 | 248.53dp 568 | 249.06dp 569 | 249.6dp 570 | 250.13dp 571 | 250.66dp 572 | 251.2dp 573 | 251.73dp 574 | 252.26dp 575 | 252.8dp 576 | 253.33dp 577 | 253.86dp 578 | 254.4dp 579 | 254.93dp 580 | 255.46dp 581 | 256.0dp 582 | 256.53dp 583 | 257.06dp 584 | 257.6dp 585 | 258.13dp 586 | 258.66dp 587 | 259.2dp 588 | 259.73dp 589 | 260.26dp 590 | 260.8dp 591 | 261.33dp 592 | 261.86dp 593 | 262.4dp 594 | 262.93dp 595 | 263.46dp 596 | 264.0dp 597 | 264.53dp 598 | 265.06dp 599 | 265.6dp 600 | 266.13dp 601 | 266.66dp 602 | 267.2dp 603 | 267.73dp 604 | 268.26dp 605 | 268.8dp 606 | 269.33dp 607 | 269.86dp 608 | 270.4dp 609 | 270.93dp 610 | 271.46dp 611 | 272.0dp 612 | 272.53dp 613 | 273.06dp 614 | 273.6dp 615 | 274.13dp 616 | 274.66dp 617 | 275.2dp 618 | 275.73dp 619 | 276.26dp 620 | 276.8dp 621 | 277.33dp 622 | 277.86dp 623 | 278.4dp 624 | 278.93dp 625 | 279.46dp 626 | 280.0dp 627 | 280.53dp 628 | 281.06dp 629 | 281.6dp 630 | 282.13dp 631 | 282.66dp 632 | 283.2dp 633 | 283.73dp 634 | 284.26dp 635 | 284.8dp 636 | 285.33dp 637 | 285.86dp 638 | 286.4dp 639 | 286.93dp 640 | 287.46dp 641 | 288.0dp 642 | 288.53dp 643 | 289.06dp 644 | 289.6dp 645 | 290.13dp 646 | 290.66dp 647 | 291.2dp 648 | 291.73dp 649 | 292.26dp 650 | 292.8dp 651 | 293.33dp 652 | 293.86dp 653 | 294.4dp 654 | 294.93dp 655 | 295.46dp 656 | 296.0dp 657 | 296.53dp 658 | 297.06dp 659 | 297.6dp 660 | 298.13dp 661 | 298.66dp 662 | 299.2dp 663 | 299.73dp 664 | 300.26dp 665 | 300.8dp 666 | 301.33dp 667 | 301.86dp 668 | 302.4dp 669 | 302.93dp 670 | 303.46dp 671 | 304.0dp 672 | 304.53dp 673 | 305.06dp 674 | 305.6dp 675 | 306.13dp 676 | 306.66dp 677 | 307.2dp 678 | 307.73dp 679 | 308.26dp 680 | 308.8dp 681 | 309.33dp 682 | 309.86dp 683 | 310.4dp 684 | 310.93dp 685 | 311.46dp 686 | 312.0dp 687 | 312.53dp 688 | 313.06dp 689 | 313.6dp 690 | 314.13dp 691 | 314.66dp 692 | 315.2dp 693 | 315.73dp 694 | 316.26dp 695 | 316.8dp 696 | 317.33dp 697 | 317.86dp 698 | 318.4dp 699 | 318.93dp 700 | 319.46dp 701 | 320.0dp 702 | 320.53dp 703 | 321.06dp 704 | 321.6dp 705 | 322.13dp 706 | 322.66dp 707 | 323.2dp 708 | 323.73dp 709 | 324.26dp 710 | 324.8dp 711 | 325.33dp 712 | 325.86dp 713 | 326.4dp 714 | 326.93dp 715 | 327.46dp 716 | 328.0dp 717 | 328.53dp 718 | 329.06dp 719 | 329.6dp 720 | 330.13dp 721 | 330.66dp 722 | 331.2dp 723 | 331.73dp 724 | 332.26dp 725 | 332.8dp 726 | 333.33dp 727 | 333.86dp 728 | 334.4dp 729 | 334.93dp 730 | 335.46dp 731 | 336.0dp 732 | 336.53dp 733 | 337.06dp 734 | 337.6dp 735 | 338.13dp 736 | 338.66dp 737 | 339.2dp 738 | 339.73dp 739 | 340.26dp 740 | 340.8dp 741 | 341.33dp 742 | 341.86dp 743 | 342.4dp 744 | 342.93dp 745 | 343.46dp 746 | 344.0dp 747 | 344.53dp 748 | 345.06dp 749 | 345.6dp 750 | 346.13dp 751 | 346.66dp 752 | 347.2dp 753 | 347.73dp 754 | 348.26dp 755 | 348.8dp 756 | 349.33dp 757 | 349.86dp 758 | 350.4dp 759 | 350.93dp 760 | 351.46dp 761 | 352.0dp 762 | 352.53dp 763 | 353.06dp 764 | 353.6dp 765 | 354.13dp 766 | 354.66dp 767 | 355.2dp 768 | 355.73dp 769 | 356.26dp 770 | 356.8dp 771 | 357.33dp 772 | 357.86dp 773 | 358.4dp 774 | 358.93dp 775 | 359.46dp 776 | 360.0dp 777 | 360.53dp 778 | 361.06dp 779 | 361.6dp 780 | 362.13dp 781 | 362.66dp 782 | 363.2dp 783 | 363.73dp 784 | 364.26dp 785 | 364.8dp 786 | 365.33dp 787 | 365.86dp 788 | 366.4dp 789 | 366.93dp 790 | 367.46dp 791 | 368.0dp 792 | 368.53dp 793 | 369.06dp 794 | 369.6dp 795 | 370.13dp 796 | 370.66dp 797 | 371.2dp 798 | 371.73dp 799 | 372.26dp 800 | 372.8dp 801 | 373.33dp 802 | 373.86dp 803 | 374.4dp 804 | 374.93dp 805 | 375.46dp 806 | 376.0dp 807 | 376.53dp 808 | 377.06dp 809 | 377.6dp 810 | 378.13dp 811 | 378.66dp 812 | 379.2dp 813 | 379.73dp 814 | 380.26dp 815 | 380.8dp 816 | 381.33dp 817 | 381.86dp 818 | 382.4dp 819 | 382.93dp 820 | 383.46dp 821 | 384.0dp 822 | 384.53dp 823 | 385.06dp 824 | 385.6dp 825 | 386.13dp 826 | 386.66dp 827 | 387.2dp 828 | 387.73dp 829 | 388.26dp 830 | 388.8dp 831 | 389.33dp 832 | 389.86dp 833 | 390.4dp 834 | 390.93dp 835 | 391.46dp 836 | 392.0dp 837 | 392.53dp 838 | 393.06dp 839 | 393.6dp 840 | 394.13dp 841 | 394.66dp 842 | 395.2dp 843 | 395.73dp 844 | 396.26dp 845 | 396.8dp 846 | 397.33dp 847 | 397.86dp 848 | 398.4dp 849 | 398.93dp 850 | 399.46dp 851 | 400.0dp 852 | 800.0dp 853 | 426.0dp 854 | -------------------------------------------------------------------------------- /app/src/main/res/values-w500dp/dps.xml: -------------------------------------------------------------------------------- 1 | 2 | 5.0dp 3 | 10.0dp 4 | 15.0dp 5 | 20.0dp 6 | 25.0dp 7 | 30.0dp 8 | 35.0dp 9 | 40.0dp 10 | 45.0dp 11 | 50.0dp 12 | 55.0dp 13 | 60.0dp 14 | 65.0dp 15 | 70.0dp 16 | 75.0dp 17 | 80.0dp 18 | 85.0dp 19 | 90.0dp 20 | 95.0dp 21 | 100.0dp 22 | 105.0dp 23 | 110.0dp 24 | 115.0dp 25 | 120.0dp 26 | 125.0dp 27 | 130.0dp 28 | 135.0dp 29 | 140.0dp 30 | 145.0dp 31 | 150.0dp 32 | 155.0dp 33 | 160.0dp 34 | 165.0dp 35 | 170.0dp 36 | 175.0dp 37 | 180.0dp 38 | 185.0dp 39 | 190.0dp 40 | 195.0dp 41 | 200.0dp 42 | 205.0dp 43 | 210.0dp 44 | 215.0dp 45 | 220.0dp 46 | 225.0dp 47 | 230.0dp 48 | 235.0dp 49 | 240.0dp 50 | 245.0dp 51 | 250.0dp 52 | 255.0dp 53 | 260.0dp 54 | 265.0dp 55 | 270.0dp 56 | 275.0dp 57 | 280.0dp 58 | 285.0dp 59 | 290.0dp 60 | 295.0dp 61 | 300.0dp 62 | 305.0dp 63 | 310.0dp 64 | 315.0dp 65 | 320.0dp 66 | 325.0dp 67 | 330.0dp 68 | 335.0dp 69 | 340.0dp 70 | 345.0dp 71 | 350.0dp 72 | 355.0dp 73 | 360.0dp 74 | 365.0dp 75 | 370.0dp 76 | 375.0dp 77 | 380.0dp 78 | 385.0dp 79 | 390.0dp 80 | 395.0dp 81 | 400.0dp 82 | 405.0dp 83 | 410.0dp 84 | 415.0dp 85 | 420.0dp 86 | 425.0dp 87 | 430.0dp 88 | 435.0dp 89 | 440.0dp 90 | 445.0dp 91 | 450.0dp 92 | 455.0dp 93 | 460.0dp 94 | 465.0dp 95 | 470.0dp 96 | 475.0dp 97 | 480.0dp 98 | 485.0dp 99 | 490.0dp 100 | 495.0dp 101 | 500.0dp 102 | 0.66dp 103 | 1.33dp 104 | 2.0dp 105 | 2.66dp 106 | 3.33dp 107 | 4.0dp 108 | 4.66dp 109 | 5.33dp 110 | 6.0dp 111 | 6.66dp 112 | 7.33dp 113 | 8.0dp 114 | 8.66dp 115 | 9.33dp 116 | 10.0dp 117 | 10.66dp 118 | 11.33dp 119 | 12.0dp 120 | 12.66dp 121 | 13.33dp 122 | 14.0dp 123 | 14.66dp 124 | 15.33dp 125 | 16.0dp 126 | 16.66dp 127 | 17.33dp 128 | 18.0dp 129 | 18.66dp 130 | 19.33dp 131 | 20.0dp 132 | 20.66dp 133 | 21.33dp 134 | 22.0dp 135 | 22.66dp 136 | 23.33dp 137 | 24.0dp 138 | 24.66dp 139 | 25.33dp 140 | 26.0dp 141 | 26.66dp 142 | 27.33dp 143 | 28.0dp 144 | 28.66dp 145 | 29.33dp 146 | 30.0dp 147 | 30.66dp 148 | 31.33dp 149 | 32.0dp 150 | 32.66dp 151 | 33.33dp 152 | 34.0dp 153 | 34.66dp 154 | 35.33dp 155 | 36.0dp 156 | 36.66dp 157 | 37.33dp 158 | 38.0dp 159 | 38.66dp 160 | 39.33dp 161 | 40.0dp 162 | 40.66dp 163 | 41.33dp 164 | 42.0dp 165 | 42.66dp 166 | 43.33dp 167 | 44.0dp 168 | 44.66dp 169 | 45.33dp 170 | 46.0dp 171 | 46.66dp 172 | 47.33dp 173 | 48.0dp 174 | 48.66dp 175 | 49.33dp 176 | 50.0dp 177 | 50.66dp 178 | 51.33dp 179 | 52.0dp 180 | 52.66dp 181 | 53.33dp 182 | 54.0dp 183 | 54.66dp 184 | 55.33dp 185 | 56.0dp 186 | 56.66dp 187 | 57.33dp 188 | 58.0dp 189 | 58.66dp 190 | 59.33dp 191 | 60.0dp 192 | 60.66dp 193 | 61.33dp 194 | 62.0dp 195 | 62.66dp 196 | 63.33dp 197 | 64.0dp 198 | 64.66dp 199 | 65.33dp 200 | 66.0dp 201 | 66.66dp 202 | 67.33dp 203 | 68.0dp 204 | 68.66dp 205 | 69.33dp 206 | 70.0dp 207 | 70.66dp 208 | 71.33dp 209 | 72.0dp 210 | 72.66dp 211 | 73.33dp 212 | 74.0dp 213 | 74.66dp 214 | 75.33dp 215 | 76.0dp 216 | 76.66dp 217 | 77.33dp 218 | 78.0dp 219 | 78.66dp 220 | 79.33dp 221 | 80.0dp 222 | 80.66dp 223 | 81.33dp 224 | 82.0dp 225 | 82.66dp 226 | 83.33dp 227 | 84.0dp 228 | 84.66dp 229 | 85.33dp 230 | 86.0dp 231 | 86.66dp 232 | 87.33dp 233 | 88.0dp 234 | 88.66dp 235 | 89.33dp 236 | 90.0dp 237 | 90.66dp 238 | 91.33dp 239 | 92.0dp 240 | 92.66dp 241 | 93.33dp 242 | 94.0dp 243 | 94.66dp 244 | 95.33dp 245 | 96.0dp 246 | 96.66dp 247 | 97.33dp 248 | 98.0dp 249 | 98.66dp 250 | 99.33dp 251 | 100.0dp 252 | 100.66dp 253 | 101.33dp 254 | 102.0dp 255 | 102.66dp 256 | 103.33dp 257 | 104.0dp 258 | 104.66dp 259 | 105.33dp 260 | 106.0dp 261 | 106.66dp 262 | 107.33dp 263 | 108.0dp 264 | 108.66dp 265 | 109.33dp 266 | 110.0dp 267 | 110.66dp 268 | 111.33dp 269 | 112.0dp 270 | 112.66dp 271 | 113.33dp 272 | 114.0dp 273 | 114.66dp 274 | 115.33dp 275 | 116.0dp 276 | 116.66dp 277 | 117.33dp 278 | 118.0dp 279 | 118.66dp 280 | 119.33dp 281 | 120.0dp 282 | 120.66dp 283 | 121.33dp 284 | 122.0dp 285 | 122.66dp 286 | 123.33dp 287 | 124.0dp 288 | 124.66dp 289 | 125.33dp 290 | 126.0dp 291 | 126.66dp 292 | 127.33dp 293 | 128.0dp 294 | 128.66dp 295 | 129.33dp 296 | 130.0dp 297 | 130.66dp 298 | 131.33dp 299 | 132.0dp 300 | 132.66dp 301 | 133.33dp 302 | 134.0dp 303 | 134.66dp 304 | 135.33dp 305 | 136.0dp 306 | 136.66dp 307 | 137.33dp 308 | 138.0dp 309 | 138.66dp 310 | 139.33dp 311 | 140.0dp 312 | 140.66dp 313 | 141.33dp 314 | 142.0dp 315 | 142.66dp 316 | 143.33dp 317 | 144.0dp 318 | 144.66dp 319 | 145.33dp 320 | 146.0dp 321 | 146.66dp 322 | 147.33dp 323 | 148.0dp 324 | 148.66dp 325 | 149.33dp 326 | 150.0dp 327 | 150.66dp 328 | 151.33dp 329 | 152.0dp 330 | 152.66dp 331 | 153.33dp 332 | 154.0dp 333 | 154.66dp 334 | 155.33dp 335 | 156.0dp 336 | 156.66dp 337 | 157.33dp 338 | 158.0dp 339 | 158.66dp 340 | 159.33dp 341 | 160.0dp 342 | 160.66dp 343 | 161.33dp 344 | 162.0dp 345 | 162.66dp 346 | 163.33dp 347 | 164.0dp 348 | 164.66dp 349 | 165.33dp 350 | 166.0dp 351 | 166.66dp 352 | 167.33dp 353 | 168.0dp 354 | 168.66dp 355 | 169.33dp 356 | 170.0dp 357 | 170.66dp 358 | 171.33dp 359 | 172.0dp 360 | 172.66dp 361 | 173.33dp 362 | 174.0dp 363 | 174.66dp 364 | 175.33dp 365 | 176.0dp 366 | 176.66dp 367 | 177.33dp 368 | 178.0dp 369 | 178.66dp 370 | 179.33dp 371 | 180.0dp 372 | 180.66dp 373 | 181.33dp 374 | 182.0dp 375 | 182.66dp 376 | 183.33dp 377 | 184.0dp 378 | 184.66dp 379 | 185.33dp 380 | 186.0dp 381 | 186.66dp 382 | 187.33dp 383 | 188.0dp 384 | 188.66dp 385 | 189.33dp 386 | 190.0dp 387 | 190.66dp 388 | 191.33dp 389 | 192.0dp 390 | 192.66dp 391 | 193.33dp 392 | 194.0dp 393 | 194.66dp 394 | 195.33dp 395 | 196.0dp 396 | 196.66dp 397 | 197.33dp 398 | 198.0dp 399 | 198.66dp 400 | 199.33dp 401 | 200.0dp 402 | 200.66dp 403 | 201.33dp 404 | 202.0dp 405 | 202.66dp 406 | 203.33dp 407 | 204.0dp 408 | 204.66dp 409 | 205.33dp 410 | 206.0dp 411 | 206.66dp 412 | 207.33dp 413 | 208.0dp 414 | 208.66dp 415 | 209.33dp 416 | 210.0dp 417 | 210.66dp 418 | 211.33dp 419 | 212.0dp 420 | 212.66dp 421 | 213.33dp 422 | 214.0dp 423 | 214.66dp 424 | 215.33dp 425 | 216.0dp 426 | 216.66dp 427 | 217.33dp 428 | 218.0dp 429 | 218.66dp 430 | 219.33dp 431 | 220.0dp 432 | 220.66dp 433 | 221.33dp 434 | 222.0dp 435 | 222.66dp 436 | 223.33dp 437 | 224.0dp 438 | 224.66dp 439 | 225.33dp 440 | 226.0dp 441 | 226.66dp 442 | 227.33dp 443 | 228.0dp 444 | 228.66dp 445 | 229.33dp 446 | 230.0dp 447 | 230.66dp 448 | 231.33dp 449 | 232.0dp 450 | 232.66dp 451 | 233.33dp 452 | 234.0dp 453 | 234.66dp 454 | 235.33dp 455 | 236.0dp 456 | 236.66dp 457 | 237.33dp 458 | 238.0dp 459 | 238.66dp 460 | 239.33dp 461 | 240.0dp 462 | 240.66dp 463 | 241.33dp 464 | 242.0dp 465 | 242.66dp 466 | 243.33dp 467 | 244.0dp 468 | 244.66dp 469 | 245.33dp 470 | 246.0dp 471 | 246.66dp 472 | 247.33dp 473 | 248.0dp 474 | 248.66dp 475 | 249.33dp 476 | 250.0dp 477 | 250.66dp 478 | 251.33dp 479 | 252.0dp 480 | 252.66dp 481 | 253.33dp 482 | 254.0dp 483 | 254.66dp 484 | 255.33dp 485 | 256.0dp 486 | 256.66dp 487 | 257.33dp 488 | 258.0dp 489 | 258.66dp 490 | 259.33dp 491 | 260.0dp 492 | 260.66dp 493 | 261.33dp 494 | 262.0dp 495 | 262.66dp 496 | 263.33dp 497 | 264.0dp 498 | 264.66dp 499 | 265.33dp 500 | 266.0dp 501 | 266.66dp 502 | 267.33dp 503 | 268.0dp 504 | 268.66dp 505 | 269.33dp 506 | 270.0dp 507 | 270.66dp 508 | 271.33dp 509 | 272.0dp 510 | 272.66dp 511 | 273.33dp 512 | 274.0dp 513 | 274.66dp 514 | 275.33dp 515 | 276.0dp 516 | 276.66dp 517 | 277.33dp 518 | 278.0dp 519 | 278.66dp 520 | 279.33dp 521 | 280.0dp 522 | 280.66dp 523 | 281.33dp 524 | 282.0dp 525 | 282.66dp 526 | 283.33dp 527 | 284.0dp 528 | 284.66dp 529 | 285.33dp 530 | 286.0dp 531 | 286.66dp 532 | 287.33dp 533 | 288.0dp 534 | 288.66dp 535 | 289.33dp 536 | 290.0dp 537 | 290.66dp 538 | 291.33dp 539 | 292.0dp 540 | 292.66dp 541 | 293.33dp 542 | 294.0dp 543 | 294.66dp 544 | 295.33dp 545 | 296.0dp 546 | 296.66dp 547 | 297.33dp 548 | 298.0dp 549 | 298.66dp 550 | 299.33dp 551 | 300.0dp 552 | 300.66dp 553 | 301.33dp 554 | 302.0dp 555 | 302.66dp 556 | 303.33dp 557 | 304.0dp 558 | 304.66dp 559 | 305.33dp 560 | 306.0dp 561 | 306.66dp 562 | 307.33dp 563 | 308.0dp 564 | 308.66dp 565 | 309.33dp 566 | 310.0dp 567 | 310.66dp 568 | 311.33dp 569 | 312.0dp 570 | 312.66dp 571 | 313.33dp 572 | 314.0dp 573 | 314.66dp 574 | 315.33dp 575 | 316.0dp 576 | 316.66dp 577 | 317.33dp 578 | 318.0dp 579 | 318.66dp 580 | 319.33dp 581 | 320.0dp 582 | 320.66dp 583 | 321.33dp 584 | 322.0dp 585 | 322.66dp 586 | 323.33dp 587 | 324.0dp 588 | 324.66dp 589 | 325.33dp 590 | 326.0dp 591 | 326.66dp 592 | 327.33dp 593 | 328.0dp 594 | 328.66dp 595 | 329.33dp 596 | 330.0dp 597 | 330.66dp 598 | 331.33dp 599 | 332.0dp 600 | 332.66dp 601 | 333.33dp 602 | 334.0dp 603 | 334.66dp 604 | 335.33dp 605 | 336.0dp 606 | 336.66dp 607 | 337.33dp 608 | 338.0dp 609 | 338.66dp 610 | 339.33dp 611 | 340.0dp 612 | 340.66dp 613 | 341.33dp 614 | 342.0dp 615 | 342.66dp 616 | 343.33dp 617 | 344.0dp 618 | 344.66dp 619 | 345.33dp 620 | 346.0dp 621 | 346.66dp 622 | 347.33dp 623 | 348.0dp 624 | 348.66dp 625 | 349.33dp 626 | 350.0dp 627 | 350.66dp 628 | 351.33dp 629 | 352.0dp 630 | 352.66dp 631 | 353.33dp 632 | 354.0dp 633 | 354.66dp 634 | 355.33dp 635 | 356.0dp 636 | 356.66dp 637 | 357.33dp 638 | 358.0dp 639 | 358.66dp 640 | 359.33dp 641 | 360.0dp 642 | 360.66dp 643 | 361.33dp 644 | 362.0dp 645 | 362.66dp 646 | 363.33dp 647 | 364.0dp 648 | 364.66dp 649 | 365.33dp 650 | 366.0dp 651 | 366.66dp 652 | 367.33dp 653 | 368.0dp 654 | 368.66dp 655 | 369.33dp 656 | 370.0dp 657 | 370.66dp 658 | 371.33dp 659 | 372.0dp 660 | 372.66dp 661 | 373.33dp 662 | 374.0dp 663 | 374.66dp 664 | 375.33dp 665 | 376.0dp 666 | 376.66dp 667 | 377.33dp 668 | 378.0dp 669 | 378.66dp 670 | 379.33dp 671 | 380.0dp 672 | 380.66dp 673 | 381.33dp 674 | 382.0dp 675 | 382.66dp 676 | 383.33dp 677 | 384.0dp 678 | 384.66dp 679 | 385.33dp 680 | 386.0dp 681 | 386.66dp 682 | 387.33dp 683 | 388.0dp 684 | 388.66dp 685 | 389.33dp 686 | 390.0dp 687 | 390.66dp 688 | 391.33dp 689 | 392.0dp 690 | 392.66dp 691 | 393.33dp 692 | 394.0dp 693 | 394.66dp 694 | 395.33dp 695 | 396.0dp 696 | 396.66dp 697 | 397.33dp 698 | 398.0dp 699 | 398.66dp 700 | 399.33dp 701 | 400.0dp 702 | 400.66dp 703 | 401.33dp 704 | 402.0dp 705 | 402.66dp 706 | 403.33dp 707 | 404.0dp 708 | 404.66dp 709 | 405.33dp 710 | 406.0dp 711 | 406.66dp 712 | 407.33dp 713 | 408.0dp 714 | 408.66dp 715 | 409.33dp 716 | 410.0dp 717 | 410.66dp 718 | 411.33dp 719 | 412.0dp 720 | 412.66dp 721 | 413.33dp 722 | 414.0dp 723 | 414.66dp 724 | 415.33dp 725 | 416.0dp 726 | 416.66dp 727 | 417.33dp 728 | 418.0dp 729 | 418.66dp 730 | 419.33dp 731 | 420.0dp 732 | 420.66dp 733 | 421.33dp 734 | 422.0dp 735 | 422.66dp 736 | 423.33dp 737 | 424.0dp 738 | 424.66dp 739 | 425.33dp 740 | 426.0dp 741 | 426.66dp 742 | 427.33dp 743 | 428.0dp 744 | 428.66dp 745 | 429.33dp 746 | 430.0dp 747 | 430.66dp 748 | 431.33dp 749 | 432.0dp 750 | 432.66dp 751 | 433.33dp 752 | 434.0dp 753 | 434.66dp 754 | 435.33dp 755 | 436.0dp 756 | 436.66dp 757 | 437.33dp 758 | 438.0dp 759 | 438.66dp 760 | 439.33dp 761 | 440.0dp 762 | 440.66dp 763 | 441.33dp 764 | 442.0dp 765 | 442.66dp 766 | 443.33dp 767 | 444.0dp 768 | 444.66dp 769 | 445.33dp 770 | 446.0dp 771 | 446.66dp 772 | 447.33dp 773 | 448.0dp 774 | 448.66dp 775 | 449.33dp 776 | 450.0dp 777 | 450.66dp 778 | 451.33dp 779 | 452.0dp 780 | 452.66dp 781 | 453.33dp 782 | 454.0dp 783 | 454.66dp 784 | 455.33dp 785 | 456.0dp 786 | 456.66dp 787 | 457.33dp 788 | 458.0dp 789 | 458.66dp 790 | 459.33dp 791 | 460.0dp 792 | 460.66dp 793 | 461.33dp 794 | 462.0dp 795 | 462.66dp 796 | 463.33dp 797 | 464.0dp 798 | 464.66dp 799 | 465.33dp 800 | 466.0dp 801 | 466.66dp 802 | 467.33dp 803 | 468.0dp 804 | 468.66dp 805 | 469.33dp 806 | 470.0dp 807 | 470.66dp 808 | 471.33dp 809 | 472.0dp 810 | 472.66dp 811 | 473.33dp 812 | 474.0dp 813 | 474.66dp 814 | 475.33dp 815 | 476.0dp 816 | 476.66dp 817 | 477.33dp 818 | 478.0dp 819 | 478.66dp 820 | 479.33dp 821 | 480.0dp 822 | 480.66dp 823 | 481.33dp 824 | 482.0dp 825 | 482.66dp 826 | 483.33dp 827 | 484.0dp 828 | 484.66dp 829 | 485.33dp 830 | 486.0dp 831 | 486.66dp 832 | 487.33dp 833 | 488.0dp 834 | 488.66dp 835 | 489.33dp 836 | 490.0dp 837 | 490.66dp 838 | 491.33dp 839 | 492.0dp 840 | 492.66dp 841 | 493.33dp 842 | 494.0dp 843 | 494.66dp 844 | 495.33dp 845 | 496.0dp 846 | 496.66dp 847 | 497.33dp 848 | 498.0dp 849 | 498.66dp 850 | 499.33dp 851 | 500.0dp 852 | 1000.0dp 853 | 533.0dp 854 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/dps.xml: -------------------------------------------------------------------------------- 1 | 2 | 1.0dp 3 | 2.0dp 4 | 3.0dp 5 | 4.0dp 6 | 6.0dp 7 | 7.0dp 8 | 8.0dp 9 | 9.0dp 10 | 10.0dp 11 | 12.0dp 12 | 13.0dp 13 | 14.0dp 14 | 15.0dp 15 | 16.0dp 16 | 18.0dp 17 | 19.0dp 18 | 20.0dp 19 | 21.0dp 20 | 22.0dp 21 | 24.0dp 22 | 25.0dp 23 | 26.0dp 24 | 27.0dp 25 | 28.0dp 26 | 30.0dp 27 | 31.0dp 28 | 32.0dp 29 | 33.0dp 30 | 34.0dp 31 | 36.0dp 32 | 37.0dp 33 | 38.0dp 34 | 39.0dp 35 | 40.0dp 36 | 42.0dp 37 | 43.0dp 38 | 44.0dp 39 | 45.0dp 40 | 46.0dp 41 | 48.0dp 42 | 49.0dp 43 | 50.0dp 44 | 51.0dp 45 | 52.0dp 46 | 54.0dp 47 | 55.0dp 48 | 56.0dp 49 | 57.0dp 50 | 58.0dp 51 | 60.0dp 52 | 61.0dp 53 | 62.0dp 54 | 63.0dp 55 | 64.0dp 56 | 66.0dp 57 | 67.0dp 58 | 68.0dp 59 | 69.0dp 60 | 70.0dp 61 | 72.0dp 62 | 73.0dp 63 | 74.0dp 64 | 75.0dp 65 | 76.0dp 66 | 78.0dp 67 | 79.0dp 68 | 80.0dp 69 | 81.0dp 70 | 82.0dp 71 | 84.0dp 72 | 85.0dp 73 | 86.0dp 74 | 87.0dp 75 | 88.0dp 76 | 90.0dp 77 | 91.0dp 78 | 92.0dp 79 | 93.0dp 80 | 94.0dp 81 | 96.0dp 82 | 97.0dp 83 | 98.0dp 84 | 99.0dp 85 | 100.0dp 86 | 102.0dp 87 | 103.0dp 88 | 104.0dp 89 | 105.0dp 90 | 106.0dp 91 | 108.0dp 92 | 109.0dp 93 | 110.0dp 94 | 111.0dp 95 | 112.0dp 96 | 114.0dp 97 | 115.0dp 98 | 116.0dp 99 | 117.0dp 100 | 118.0dp 101 | 120.0dp 102 | 0.16dp 103 | 0.32dp 104 | 0.48dp 105 | 0.64dp 106 | 0.79dp 107 | 0.96dp 108 | 1.12dp 109 | 1.28dp 110 | 1.44dp 111 | 1.59dp 112 | 1.76dp 113 | 1.92dp 114 | 2.08dp 115 | 2.24dp 116 | 2.39dp 117 | 2.56dp 118 | 2.72dp 119 | 2.88dp 120 | 3.04dp 121 | 3.19dp 122 | 3.36dp 123 | 3.52dp 124 | 3.67dp 125 | 3.84dp 126 | 4.0dp 127 | 4.16dp 128 | 4.31dp 129 | 4.48dp 130 | 4.64dp 131 | 4.79dp 132 | 4.96dp 133 | 5.12dp 134 | 5.28dp 135 | 5.44dp 136 | 5.6dp 137 | 5.76dp 138 | 5.92dp 139 | 6.08dp 140 | 6.24dp 141 | 6.39dp 142 | 6.56dp 143 | 6.72dp 144 | 6.87dp 145 | 7.04dp 146 | 7.2dp 147 | 7.35dp 148 | 7.52dp 149 | 7.68dp 150 | 7.83dp 151 | 8.0dp 152 | 8.16dp 153 | 8.32dp 154 | 8.47dp 155 | 8.63dp 156 | 8.8dp 157 | 8.96dp 158 | 9.12dp 159 | 9.28dp 160 | 9.43dp 161 | 9.59dp 162 | 9.76dp 163 | 9.92dp 164 | 10.08dp 165 | 10.24dp 166 | 10.4dp 167 | 10.56dp 168 | 10.71dp 169 | 10.88dp 170 | 11.04dp 171 | 11.2dp 172 | 11.36dp 173 | 11.52dp 174 | 11.67dp 175 | 11.84dp 176 | 12.0dp 177 | 12.16dp 178 | 12.32dp 179 | 12.48dp 180 | 12.64dp 181 | 12.79dp 182 | 12.96dp 183 | 13.12dp 184 | 13.28dp 185 | 13.44dp 186 | 13.6dp 187 | 13.75dp 188 | 13.92dp 189 | 14.08dp 190 | 14.24dp 191 | 14.4dp 192 | 14.56dp 193 | 14.71dp 194 | 14.88dp 195 | 15.04dp 196 | 15.2dp 197 | 15.36dp 198 | 15.52dp 199 | 15.67dp 200 | 15.83dp 201 | 16.0dp 202 | 16.16dp 203 | 16.32dp 204 | 16.48dp 205 | 16.64dp 206 | 16.79dp 207 | 16.95dp 208 | 17.11dp 209 | 17.27dp 210 | 17.44dp 211 | 17.6dp 212 | 17.76dp 213 | 17.92dp 214 | 18.08dp 215 | 18.24dp 216 | 18.4dp 217 | 18.56dp 218 | 18.71dp 219 | 18.87dp 220 | 19.03dp 221 | 19.19dp 222 | 19.35dp 223 | 19.52dp 224 | 19.68dp 225 | 19.84dp 226 | 20.0dp 227 | 20.16dp 228 | 20.32dp 229 | 20.48dp 230 | 20.64dp 231 | 20.8dp 232 | 20.96dp 233 | 21.12dp 234 | 21.28dp 235 | 21.43dp 236 | 21.6dp 237 | 21.76dp 238 | 21.92dp 239 | 22.08dp 240 | 22.24dp 241 | 22.4dp 242 | 22.56dp 243 | 22.72dp 244 | 22.88dp 245 | 23.04dp 246 | 23.2dp 247 | 23.35dp 248 | 23.51dp 249 | 23.68dp 250 | 23.84dp 251 | 24.0dp 252 | 24.16dp 253 | 24.32dp 254 | 24.48dp 255 | 24.64dp 256 | 24.8dp 257 | 24.96dp 258 | 25.12dp 259 | 25.28dp 260 | 25.43dp 261 | 25.59dp 262 | 25.76dp 263 | 25.92dp 264 | 26.08dp 265 | 26.24dp 266 | 26.4dp 267 | 26.56dp 268 | 26.72dp 269 | 26.88dp 270 | 27.04dp 271 | 27.2dp 272 | 27.35dp 273 | 27.51dp 274 | 27.68dp 275 | 27.84dp 276 | 28.0dp 277 | 28.16dp 278 | 28.32dp 279 | 28.48dp 280 | 28.64dp 281 | 28.8dp 282 | 28.96dp 283 | 29.12dp 284 | 29.28dp 285 | 29.43dp 286 | 29.59dp 287 | 29.76dp 288 | 29.92dp 289 | 30.08dp 290 | 30.24dp 291 | 30.4dp 292 | 30.56dp 293 | 30.72dp 294 | 30.88dp 295 | 31.04dp 296 | 31.2dp 297 | 31.35dp 298 | 31.51dp 299 | 31.67dp 300 | 31.84dp 301 | 32.0dp 302 | 32.16dp 303 | 32.32dp 304 | 32.48dp 305 | 32.64dp 306 | 32.8dp 307 | 32.96dp 308 | 33.12dp 309 | 33.28dp 310 | 33.43dp 311 | 33.59dp 312 | 33.75dp 313 | 33.91dp 314 | 34.07dp 315 | 34.23dp 316 | 34.39dp 317 | 34.55dp 318 | 34.71dp 319 | 34.88dp 320 | 35.04dp 321 | 35.2dp 322 | 35.36dp 323 | 35.52dp 324 | 35.68dp 325 | 35.84dp 326 | 36.0dp 327 | 36.16dp 328 | 36.32dp 329 | 36.48dp 330 | 36.64dp 331 | 36.8dp 332 | 36.96dp 333 | 37.12dp 334 | 37.28dp 335 | 37.43dp 336 | 37.59dp 337 | 37.75dp 338 | 37.91dp 339 | 38.07dp 340 | 38.23dp 341 | 38.39dp 342 | 38.55dp 343 | 38.71dp 344 | 38.87dp 345 | 39.04dp 346 | 39.2dp 347 | 39.36dp 348 | 39.52dp 349 | 39.68dp 350 | 39.84dp 351 | 40.0dp 352 | 40.16dp 353 | 40.32dp 354 | 40.48dp 355 | 40.64dp 356 | 40.8dp 357 | 40.96dp 358 | 41.12dp 359 | 41.28dp 360 | 41.44dp 361 | 41.6dp 362 | 41.76dp 363 | 41.92dp 364 | 42.08dp 365 | 42.24dp 366 | 42.4dp 367 | 42.56dp 368 | 42.71dp 369 | 42.87dp 370 | 43.04dp 371 | 43.2dp 372 | 43.36dp 373 | 43.52dp 374 | 43.68dp 375 | 43.84dp 376 | 44.0dp 377 | 44.16dp 378 | 44.32dp 379 | 44.48dp 380 | 44.64dp 381 | 44.8dp 382 | 44.96dp 383 | 45.12dp 384 | 45.28dp 385 | 45.44dp 386 | 45.6dp 387 | 45.76dp 388 | 45.92dp 389 | 46.08dp 390 | 46.24dp 391 | 46.4dp 392 | 46.56dp 393 | 46.71dp 394 | 46.87dp 395 | 47.03dp 396 | 47.2dp 397 | 47.36dp 398 | 47.52dp 399 | 47.68dp 400 | 47.84dp 401 | 48.0dp 402 | 48.16dp 403 | 48.32dp 404 | 48.48dp 405 | 48.64dp 406 | 48.8dp 407 | 48.96dp 408 | 49.12dp 409 | 49.28dp 410 | 49.44dp 411 | 49.6dp 412 | 49.76dp 413 | 49.92dp 414 | 50.08dp 415 | 50.24dp 416 | 50.4dp 417 | 50.56dp 418 | 50.71dp 419 | 50.87dp 420 | 51.03dp 421 | 51.19dp 422 | 51.36dp 423 | 51.52dp 424 | 51.68dp 425 | 51.84dp 426 | 52.0dp 427 | 52.16dp 428 | 52.32dp 429 | 52.48dp 430 | 52.64dp 431 | 52.8dp 432 | 52.96dp 433 | 53.12dp 434 | 53.28dp 435 | 53.44dp 436 | 53.6dp 437 | 53.76dp 438 | 53.92dp 439 | 54.08dp 440 | 54.24dp 441 | 54.4dp 442 | 54.56dp 443 | 54.71dp 444 | 54.87dp 445 | 55.03dp 446 | 55.19dp 447 | 55.36dp 448 | 55.52dp 449 | 55.68dp 450 | 55.84dp 451 | 56.0dp 452 | 56.16dp 453 | 56.32dp 454 | 56.48dp 455 | 56.64dp 456 | 56.8dp 457 | 56.96dp 458 | 57.12dp 459 | 57.28dp 460 | 57.44dp 461 | 57.6dp 462 | 57.76dp 463 | 57.92dp 464 | 58.08dp 465 | 58.24dp 466 | 58.4dp 467 | 58.56dp 468 | 58.71dp 469 | 58.87dp 470 | 59.03dp 471 | 59.19dp 472 | 59.35dp 473 | 59.52dp 474 | 59.68dp 475 | 59.84dp 476 | 60.0dp 477 | 60.16dp 478 | 60.32dp 479 | 60.48dp 480 | 60.64dp 481 | 60.8dp 482 | 60.96dp 483 | 61.12dp 484 | 61.28dp 485 | 61.44dp 486 | 61.6dp 487 | 61.76dp 488 | 61.92dp 489 | 62.08dp 490 | 62.24dp 491 | 62.4dp 492 | 62.56dp 493 | 62.71dp 494 | 62.87dp 495 | 63.03dp 496 | 63.19dp 497 | 63.35dp 498 | 63.52dp 499 | 63.68dp 500 | 63.84dp 501 | 64.0dp 502 | 64.15dp 503 | 64.32dp 504 | 64.47dp 505 | 64.64dp 506 | 64.79dp 507 | 64.96dp 508 | 65.11dp 509 | 65.28dp 510 | 65.43dp 511 | 65.6dp 512 | 65.76dp 513 | 65.92dp 514 | 66.08dp 515 | 66.24dp 516 | 66.4dp 517 | 66.56dp 518 | 66.72dp 519 | 66.87dp 520 | 67.04dp 521 | 67.19dp 522 | 67.36dp 523 | 67.51dp 524 | 67.68dp 525 | 67.83dp 526 | 68.0dp 527 | 68.15dp 528 | 68.32dp 529 | 68.47dp 530 | 68.64dp 531 | 68.79dp 532 | 68.96dp 533 | 69.11dp 534 | 69.28dp 535 | 69.43dp 536 | 69.6dp 537 | 69.76dp 538 | 69.92dp 539 | 70.08dp 540 | 70.24dp 541 | 70.4dp 542 | 70.56dp 543 | 70.72dp 544 | 70.87dp 545 | 71.04dp 546 | 71.19dp 547 | 71.36dp 548 | 71.51dp 549 | 71.68dp 550 | 71.83dp 551 | 72.0dp 552 | 72.15dp 553 | 72.32dp 554 | 72.47dp 555 | 72.64dp 556 | 72.79dp 557 | 72.96dp 558 | 73.11dp 559 | 73.28dp 560 | 73.43dp 561 | 73.6dp 562 | 73.76dp 563 | 73.92dp 564 | 74.08dp 565 | 74.24dp 566 | 74.4dp 567 | 74.56dp 568 | 74.72dp 569 | 74.87dp 570 | 75.04dp 571 | 75.19dp 572 | 75.36dp 573 | 75.51dp 574 | 75.68dp 575 | 75.83dp 576 | 76.0dp 577 | 76.15dp 578 | 76.32dp 579 | 76.47dp 580 | 76.64dp 581 | 76.79dp 582 | 76.96dp 583 | 77.11dp 584 | 77.28dp 585 | 77.43dp 586 | 77.6dp 587 | 77.75dp 588 | 77.92dp 589 | 78.08dp 590 | 78.24dp 591 | 78.4dp 592 | 78.56dp 593 | 78.72dp 594 | 78.87dp 595 | 79.04dp 596 | 79.19dp 597 | 79.36dp 598 | 79.51dp 599 | 79.68dp 600 | 79.83dp 601 | 80.0dp 602 | 80.15dp 603 | 80.32dp 604 | 80.47dp 605 | 80.64dp 606 | 80.79dp 607 | 80.96dp 608 | 81.11dp 609 | 81.28dp 610 | 81.43dp 611 | 81.6dp 612 | 81.75dp 613 | 81.92dp 614 | 82.08dp 615 | 82.24dp 616 | 82.4dp 617 | 82.56dp 618 | 82.72dp 619 | 82.88dp 620 | 83.04dp 621 | 83.2dp 622 | 83.36dp 623 | 83.52dp 624 | 83.68dp 625 | 83.84dp 626 | 84.0dp 627 | 84.16dp 628 | 84.32dp 629 | 84.48dp 630 | 84.64dp 631 | 84.8dp 632 | 84.96dp 633 | 85.12dp 634 | 85.28dp 635 | 85.43dp 636 | 85.6dp 637 | 85.75dp 638 | 85.92dp 639 | 86.08dp 640 | 86.24dp 641 | 86.4dp 642 | 86.56dp 643 | 86.72dp 644 | 86.88dp 645 | 87.04dp 646 | 87.2dp 647 | 87.36dp 648 | 87.52dp 649 | 87.68dp 650 | 87.84dp 651 | 88.0dp 652 | 88.16dp 653 | 88.32dp 654 | 88.48dp 655 | 88.64dp 656 | 88.8dp 657 | 88.96dp 658 | 89.12dp 659 | 89.28dp 660 | 89.43dp 661 | 89.6dp 662 | 89.75dp 663 | 89.92dp 664 | 90.07dp 665 | 90.24dp 666 | 90.4dp 667 | 90.56dp 668 | 90.72dp 669 | 90.88dp 670 | 91.04dp 671 | 91.2dp 672 | 91.36dp 673 | 91.52dp 674 | 91.68dp 675 | 91.84dp 676 | 92.0dp 677 | 92.16dp 678 | 92.32dp 679 | 92.48dp 680 | 92.64dp 681 | 92.8dp 682 | 92.96dp 683 | 93.12dp 684 | 93.28dp 685 | 93.43dp 686 | 93.6dp 687 | 93.75dp 688 | 93.92dp 689 | 94.07dp 690 | 94.24dp 691 | 94.4dp 692 | 94.56dp 693 | 94.72dp 694 | 94.88dp 695 | 95.04dp 696 | 95.2dp 697 | 95.36dp 698 | 95.52dp 699 | 95.68dp 700 | 95.84dp 701 | 96.0dp 702 | 96.16dp 703 | 96.32dp 704 | 96.48dp 705 | 96.64dp 706 | 96.8dp 707 | 96.96dp 708 | 97.12dp 709 | 97.28dp 710 | 97.43dp 711 | 97.6dp 712 | 97.75dp 713 | 97.92dp 714 | 98.07dp 715 | 98.24dp 716 | 98.4dp 717 | 98.56dp 718 | 98.72dp 719 | 98.88dp 720 | 99.04dp 721 | 99.2dp 722 | 99.36dp 723 | 99.52dp 724 | 99.68dp 725 | 99.84dp 726 | 100.0dp 727 | 100.16dp 728 | 100.32dp 729 | 100.48dp 730 | 100.64dp 731 | 100.8dp 732 | 100.96dp 733 | 101.12dp 734 | 101.28dp 735 | 101.43dp 736 | 101.6dp 737 | 101.75dp 738 | 101.92dp 739 | 102.07dp 740 | 102.24dp 741 | 102.39dp 742 | 102.56dp 743 | 102.72dp 744 | 102.88dp 745 | 103.04dp 746 | 103.2dp 747 | 103.36dp 748 | 103.52dp 749 | 103.68dp 750 | 103.84dp 751 | 104.0dp 752 | 104.16dp 753 | 104.32dp 754 | 104.48dp 755 | 104.64dp 756 | 104.8dp 757 | 104.96dp 758 | 105.12dp 759 | 105.28dp 760 | 105.43dp 761 | 105.6dp 762 | 105.75dp 763 | 105.92dp 764 | 106.07dp 765 | 106.24dp 766 | 106.39dp 767 | 106.56dp 768 | 106.72dp 769 | 106.88dp 770 | 107.04dp 771 | 107.2dp 772 | 107.36dp 773 | 107.52dp 774 | 107.68dp 775 | 107.84dp 776 | 108.0dp 777 | 108.16dp 778 | 108.32dp 779 | 108.48dp 780 | 108.64dp 781 | 108.8dp 782 | 108.96dp 783 | 109.12dp 784 | 109.28dp 785 | 109.43dp 786 | 109.6dp 787 | 109.75dp 788 | 109.92dp 789 | 110.07dp 790 | 110.24dp 791 | 110.39dp 792 | 110.56dp 793 | 110.72dp 794 | 110.88dp 795 | 111.04dp 796 | 111.2dp 797 | 111.36dp 798 | 111.52dp 799 | 111.68dp 800 | 111.84dp 801 | 112.0dp 802 | 112.16dp 803 | 112.32dp 804 | 112.48dp 805 | 112.64dp 806 | 112.8dp 807 | 112.96dp 808 | 113.12dp 809 | 113.28dp 810 | 113.43dp 811 | 113.6dp 812 | 113.75dp 813 | 113.92dp 814 | 114.07dp 815 | 114.24dp 816 | 114.39dp 817 | 114.56dp 818 | 114.72dp 819 | 114.88dp 820 | 115.04dp 821 | 115.2dp 822 | 115.36dp 823 | 115.52dp 824 | 115.68dp 825 | 115.84dp 826 | 116.0dp 827 | 116.16dp 828 | 116.32dp 829 | 116.48dp 830 | 116.64dp 831 | 116.8dp 832 | 116.96dp 833 | 117.12dp 834 | 117.28dp 835 | 117.43dp 836 | 117.6dp 837 | 117.75dp 838 | 117.92dp 839 | 118.07dp 840 | 118.24dp 841 | 118.39dp 842 | 118.56dp 843 | 118.71dp 844 | 118.88dp 845 | 119.04dp 846 | 119.2dp 847 | 119.36dp 848 | 119.52dp 849 | 119.68dp 850 | 119.84dp 851 | 120.0dp 852 | 240.0dp 853 | 128.0dp 854 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | DoubleScroll 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/test/java/cn/groegeyang/doublescroll/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package cn.groegeyang.doublescroll; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:2.3.0-alpha1' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | jcenter() 18 | } 19 | } 20 | 21 | task clean(type: Delete) { 22 | delete rootProject.buildDir 23 | } 24 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | ## Project-wide Gradle settings. 2 | # 3 | # For more details on how to configure your build environment visit 4 | # http://www.gradle.org/docs/current/userguide/build_environment.html 5 | # 6 | # Specifies the JVM arguments used for the daemon process. 7 | # The setting is particularly useful for tweaking memory settings. 8 | # Default value: -Xmx1024m -XX:MaxPermSize=256m 9 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 10 | # 11 | # When configured, Gradle will run in incubating parallel mode. 12 | # This option should only be used with decoupled projects. More details, visit 13 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 14 | # org.gradle.parallel=true 15 | #Mon Nov 14 20:13:50 CST 2016 16 | systemProp.http.proxyHost=127.0.0.1 17 | systemProp.http.proxyPort=1080 18 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/georgeyang1024/DoubleScroll/d6274cf26d02788dd73c0a1d168ffedde6426be3/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Nov 15 21:12:19 CST 2016 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 7 | -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ############################################################################## 4 | ## 5 | ## Gradle start up script for UN*X 6 | ## 7 | ############################################################################## 8 | 9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 10 | DEFAULT_JVM_OPTS="" 11 | 12 | APP_NAME="Gradle" 13 | APP_BASE_NAME=`basename "$0"` 14 | 15 | # Use the maximum available, or set MAX_FD != -1 to use that value. 16 | MAX_FD="maximum" 17 | 18 | warn ( ) { 19 | echo "$*" 20 | } 21 | 22 | die ( ) { 23 | echo 24 | echo "$*" 25 | echo 26 | exit 1 27 | } 28 | 29 | # OS specific support (must be 'true' or 'false'). 30 | cygwin=false 31 | msys=false 32 | darwin=false 33 | case "`uname`" in 34 | CYGWIN* ) 35 | cygwin=true 36 | ;; 37 | Darwin* ) 38 | darwin=true 39 | ;; 40 | MINGW* ) 41 | msys=true 42 | ;; 43 | esac 44 | 45 | # Attempt to set APP_HOME 46 | # Resolve links: $0 may be a link 47 | PRG="$0" 48 | # Need this for relative symlinks. 49 | while [ -h "$PRG" ] ; do 50 | ls=`ls -ld "$PRG"` 51 | link=`expr "$ls" : '.*-> \(.*\)$'` 52 | if expr "$link" : '/.*' > /dev/null; then 53 | PRG="$link" 54 | else 55 | PRG=`dirname "$PRG"`"/$link" 56 | fi 57 | done 58 | SAVED="`pwd`" 59 | cd "`dirname \"$PRG\"`/" >/dev/null 60 | APP_HOME="`pwd -P`" 61 | cd "$SAVED" >/dev/null 62 | 63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 64 | 65 | # Determine the Java command to use to start the JVM. 66 | if [ -n "$JAVA_HOME" ] ; then 67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 68 | # IBM's JDK on AIX uses strange locations for the executables 69 | JAVACMD="$JAVA_HOME/jre/sh/java" 70 | else 71 | JAVACMD="$JAVA_HOME/bin/java" 72 | fi 73 | if [ ! -x "$JAVACMD" ] ; then 74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 75 | 76 | Please set the JAVA_HOME variable in your environment to match the 77 | location of your Java installation." 78 | fi 79 | else 80 | JAVACMD="java" 81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 82 | 83 | Please set the JAVA_HOME variable in your environment to match the 84 | location of your Java installation." 85 | fi 86 | 87 | # Increase the maximum file descriptors if we can. 88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 89 | MAX_FD_LIMIT=`ulimit -H -n` 90 | if [ $? -eq 0 ] ; then 91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 92 | MAX_FD="$MAX_FD_LIMIT" 93 | fi 94 | ulimit -n $MAX_FD 95 | if [ $? -ne 0 ] ; then 96 | warn "Could not set maximum file descriptor limit: $MAX_FD" 97 | fi 98 | else 99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 100 | fi 101 | fi 102 | 103 | # For Darwin, add options to specify how the application appears in the dock 104 | if $darwin; then 105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 106 | fi 107 | 108 | # For Cygwin, switch paths to Windows format before running java 109 | if $cygwin ; then 110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 112 | JAVACMD=`cygpath --unix "$JAVACMD"` 113 | 114 | # We build the pattern for arguments to be converted via cygpath 115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 116 | SEP="" 117 | for dir in $ROOTDIRSRAW ; do 118 | ROOTDIRS="$ROOTDIRS$SEP$dir" 119 | SEP="|" 120 | done 121 | OURCYGPATTERN="(^($ROOTDIRS))" 122 | # Add a user-defined pattern to the cygpath arguments 123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 125 | fi 126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 127 | i=0 128 | for arg in "$@" ; do 129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 131 | 132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 134 | else 135 | eval `echo args$i`="\"$arg\"" 136 | fi 137 | i=$((i+1)) 138 | done 139 | case $i in 140 | (0) set -- ;; 141 | (1) set -- "$args0" ;; 142 | (2) set -- "$args0" "$args1" ;; 143 | (3) set -- "$args0" "$args1" "$args2" ;; 144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 150 | esac 151 | fi 152 | 153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 154 | function splitJvmOpts() { 155 | JVM_OPTS=("$@") 156 | } 157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 159 | 160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 161 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | --------------------------------------------------------------------------------