10 | * Create a class and extends ItemTouchHelper.Callback
11 | */
12 |
13 | public class RZItemTouchHelperCallback extends ItemTouchHelper.Callback {
14 |
15 | private ItemMoveSwipeListener itemMoveSwipeListener;
16 |
17 | public RZItemTouchHelperCallback(ItemMoveSwipeListener itemMoveSwipeListener) {
18 | this.itemMoveSwipeListener = itemMoveSwipeListener;
19 | }
20 |
21 | /**
22 | * 這個方法決定RecyclerView Item可以移動&滑動的方向
23 | *
24 | * @param recyclerView
25 | * @param viewHolder
26 | * @return
27 | */
28 | @Override
29 | public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
30 |
31 | // 先律定可「移動」的方向,這邊限制只能上、下移動
32 | int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
33 |
34 | // 在律定可「滑動」的方向,這邊限制只能左、右滑動
35 | int swipeFlags = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
36 |
37 | // 如果是GridLayoutManager,那麼就不需要滑動所以可以這樣設置(左、上、右、下)
38 | // int dragFlags = ItemTouchHelper.LEFT | ItemTouchHelper.UP | ItemTouchHelper.RIGHT | ItemTouchHelper.DOWN;
39 |
40 | // 如果想讓「移動」或是「滑動」,其中1個無效用則參數設為0即可
41 | // int dragFlags = 0;
42 | // int swipeFlags = 0;
43 |
44 | // 再透過makeMovementFlags()方法去設置
45 | return makeMovementFlags(dragFlags, swipeFlags);
46 | }
47 |
48 | /**
49 | * 移動完成後,要做甚麼事
50 | *
51 | * @param recyclerView
52 | * @param viewHolder 當前的手指正在移動的item
53 | * @param target 要被交換的item
54 | * @return 決定當次的移動是否要執行,true 執行 ; false 不執行
55 | */
56 | @Override
57 | public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
58 | return itemMoveSwipeListener.onItemMove(viewHolder.getAdapterPosition(), target.getAdapterPosition());
59 | }
60 |
61 | /**
62 | * 滑動完成後,要做甚麼事
63 | *
64 | * @param viewHolder
65 | * @param direction 當前滑動的方向
66 | */
67 | @Override
68 | public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
69 | itemMoveSwipeListener.onItemSwipe(viewHolder.getAdapterPosition());
70 | }
71 |
72 | /**
73 | * 當item被選取到的時候,要做甚麼事
74 | *
75 | * @param viewHolder
76 | * @param actionState
77 | */
78 | @Override
79 | public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
80 | super.onSelectedChanged(viewHolder, actionState);
81 |
82 | // 當item被選取到且是在移動的狀態下
83 | if (actionState == ItemTouchHelper.ACTION_STATE_DRAG) {
84 | // 就將透明度為原來的70%
85 | viewHolder.itemView.setAlpha(0.7f);
86 | }
87 | }
88 |
89 | /**
90 | * 當事件完成後,可以在這個方法,將View做復原的動作
91 | *
92 | * @param recyclerView
93 | * @param viewHolder
94 | */
95 | @Override
96 | public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
97 | super.clearView(recyclerView, viewHolder);
98 |
99 | viewHolder.itemView.setAlpha(1.0f);
100 | }
101 |
102 | // 如果是Swipe,要Override這個方法,因為想做的效果是隨著滑動距離
103 | // 來改變當前的透明度。上述的方法並無法取得滑動距離。
104 | // 所以需在這個方法,來實現
105 | @Override
106 | public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
107 | float dX, float dY, int actionState, boolean isCurrentlyActive) {
108 | super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
109 |
110 | if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
111 | // 取得控件的寬度
112 | float width = viewHolder.itemView.getWidth();
113 | // 依照滑動的距離,來計算當前透明度的值
114 | float alphaValue = 1 - Math.abs(dX) / width;
115 |
116 | viewHolder.itemView.setAlpha(alphaValue);
117 | }
118 | }
119 | }
120 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rayzhang/android/materialdesign/onboarding/OnboardingActivity.java:
--------------------------------------------------------------------------------
1 | package com.rayzhang.android.materialdesign.onboarding;
2 |
3 | import android.animation.ArgbEvaluator;
4 | import android.graphics.Color;
5 | import android.os.Build;
6 | import android.os.Bundle;
7 | import android.support.v4.app.Fragment;
8 | import android.support.v4.app.FragmentManager;
9 | import android.support.v4.app.FragmentPagerAdapter;
10 | import android.support.v4.view.ViewPager;
11 | import android.support.v7.app.AppCompatActivity;
12 | import android.view.LayoutInflater;
13 | import android.view.View;
14 | import android.view.ViewGroup;
15 | import android.widget.ImageView;
16 | import android.widget.TextView;
17 |
18 | import com.rayzhang.android.materialdesign.R;
19 | import com.rayzhang.android.materialdesign.widget.RZIndicatorView;
20 |
21 | public class OnboardingActivity extends AppCompatActivity implements View.OnClickListener {
22 | /**
23 | * Material Design Onboarding
24 | */
25 | private ViewPager mViewPager;
26 | private TextView mTextSkip, mTextNext;
27 | private RZIndicatorView mRZIndicatorView;
28 | private SectionsPagerAdapter mSectionsPagerAdapter;
29 | // 設定過渡顏色的Array,數量是總頁數+1
30 | private int[] colors = {Color.parseColor("#ff9a96"), Color.parseColor("#74ceff"), Color.parseColor("#f1ce40"),
31 | Color.parseColor("#5b183f"), Color.parseColor("#ddeba1")};
32 |
33 | @Override
34 | protected void onCreate(Bundle savedInstanceState) {
35 | super.onCreate(savedInstanceState);
36 | setContentView(R.layout.activity_onboarding);
37 |
38 | mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
39 | // Set up the ViewPager with the sections adapter.
40 | mViewPager = (ViewPager) findViewById(R.id.container);
41 | mViewPager.setAdapter(mSectionsPagerAdapter);
42 | mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
43 | @Override
44 | public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
45 | /**
46 | * 使用顏色過渡類別 ArgbEvaluator()
47 | *
48 | * 3個參數分別為
49 | * 1. fraction : 過渡的起始&結束值
50 | * 2. startValue : 起始的顏色
51 | * 3. endValue : 結束的顏色
52 | */
53 | // 這裡的結束顏色,就是下一頁的顏色。然而在最後一頁時,如果顏色Array數量沒+1,就會crash。也就是顏色Array數量要+1的原因
54 | int colorUpdate = (int) new ArgbEvaluator().evaluate(positionOffset, colors[position], colors[position + 1]);
55 | // 又或者去判斷是否為最後一頁,如果是就把顏色指定為第一頁的顏色
56 | //int colorUpdate = (int) new ArgbEvaluator().evaluate(positionOffset, colors[position],
57 | //colors[position + 1 == mViewPager.getChildCount() ? 0 : position + 1]);
58 |
59 | // 將過渡顏色設定為ViewPager的背景色
60 | mViewPager.setBackgroundColor(colorUpdate);
61 | // 當SDK >= 21時,將狀態列一併改變顏色
62 | if (Build.VERSION.SDK_INT >= 21) {
63 | getWindow().setStatusBarColor(colorUpdate);
64 | }
65 | }
66 |
67 | @Override
68 | public void onPageSelected(int position) {
69 | // 對應每個頁面時,textView就做相對應處理。並將IndicatorView的顯示,指定該頁面
70 | mTextSkip.setVisibility(position > 1 ? View.GONE : View.VISIBLE);
71 | mTextNext.setText(position > 1 ? "START" : "NEXT");
72 | mRZIndicatorView.setCurPositon(position, false);
73 | }
74 |
75 | @Override
76 | public void onPageScrollStateChanged(int state) {
77 |
78 | }
79 | });
80 |
81 | mTextSkip = (TextView) findViewById(R.id.mTextSkip);
82 | mTextNext = (TextView) findViewById(R.id.mTextNext);
83 | mTextSkip.setOnClickListener(this);
84 | mTextNext.setOnClickListener(this);
85 | // 自定義的Indicator View
86 | mRZIndicatorView = (RZIndicatorView) findViewById(R.id.mRZIndicatorView);
87 | mRZIndicatorView.setIndiCount(3);
88 | mRZIndicatorView.setIndicatorColor(Color.WHITE);
89 | mRZIndicatorView.setCurPositon(0, true);
90 | }
91 |
92 | @Override
93 | public void onClick(View v) {
94 | switch (v.getId()) {
95 | case R.id.mTextSkip:
96 | finish();
97 | break;
98 | case R.id.mTextNext:
99 | int position = mViewPager.getCurrentItem();
100 | if (position == 0 || position == 1) {
101 | mViewPager.setCurrentItem(position + 1);
102 | } else {
103 | finish();
104 | }
105 | break;
106 | }
107 | }
108 |
109 | public static class PlaceholderFragment extends Fragment {
110 | private static final String ARG_SECTION_NUMBER = "section_number";
111 | // 每頁圖片
112 | private int[] logos = {R.drawable.ic_twitter, R.drawable.ic_chrome, R.drawable.ic_android};
113 |
114 | public PlaceholderFragment() {
115 | }
116 |
117 | public static PlaceholderFragment newInstance(int sectionNumber) {
118 | PlaceholderFragment fragment = new PlaceholderFragment();
119 | Bundle args = new Bundle();
120 | args.putInt(ARG_SECTION_NUMBER, sectionNumber);
121 | fragment.setArguments(args);
122 | return fragment;
123 | }
124 |
125 | @Override
126 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
127 | View rootView = inflater.inflate(R.layout.fragment_onboarding, container, false);
128 |
129 | ImageView mImgView = (ImageView) rootView.findViewById(R.id.mImgView);
130 | mImgView.setImageResource(logos[getArguments().getInt(ARG_SECTION_NUMBER)]);
131 |
132 | return rootView;
133 | }
134 | }
135 |
136 | public class SectionsPagerAdapter extends FragmentPagerAdapter {
137 |
138 | public SectionsPagerAdapter(FragmentManager fm) {
139 | super(fm);
140 | }
141 |
142 | @Override
143 | public Fragment getItem(int position) {
144 | // getItem is called to instantiate the fragment for the given page.
145 | // Return a PlaceholderFragment (defined as a static inner class below).
146 | return PlaceholderFragment.newInstance(position);
147 | }
148 |
149 | @Override
150 | public int getCount() {
151 | // Show 3 total pages.
152 | return 3;
153 | }
154 |
155 | @Override
156 | public CharSequence getPageTitle(int position) {
157 | switch (position) {
158 | case 0:
159 | return "SECTION 1";
160 | case 1:
161 | return "SECTION 2";
162 | case 2:
163 | return "SECTION 3";
164 | }
165 | return null;
166 | }
167 | }
168 | }
169 |
--------------------------------------------------------------------------------
/app/src/main/java/com/rayzhang/android/materialdesign/widget/RZIndicatorView.java:
--------------------------------------------------------------------------------
1 | package com.rayzhang.android.materialdesign.widget;
2 |
3 | import android.animation.Animator;
4 | import android.animation.ValueAnimator;
5 | import android.content.Context;
6 | import android.graphics.Canvas;
7 | import android.graphics.Color;
8 | import android.graphics.Paint;
9 | import android.support.annotation.ColorInt;
10 | import android.util.AttributeSet;
11 | import android.view.View;
12 | import android.view.animation.AccelerateDecelerateInterpolator;
13 |
14 | /**
15 | * Created by Ray on 2016/12/31.
16 | */
17 |
18 | public class RZIndicatorView extends View {
19 | /**
20 | * 自訂義指示器 View
21 | */
22 | private static final String TAG = RZIndicatorView.class.getSimpleName();
23 | private Paint mPaint, mPaintExpand;
24 | // 半徑
25 | private float radius;
26 | // 直徑
27 | private float diameter;
28 | // 間距
29 | private float gap;
30 | // 數量
31 | private int indiCount;
32 | // 目前位置
33 | private int curPositon;
34 | // 紀錄總長度
35 | private int totalLen;
36 | // 選到Item動畫
37 | private ValueAnimator animator_expand;
38 | // 是否要繪製
39 | private boolean canDraw = false;
40 | // 擴散時的透明度
41 | private int expandAlphaValue = 255;
42 | // 擴散時的半徑
43 | private float expandRadius = 0f;
44 | // 動畫時間
45 | private static final int DURATION = 400;
46 |
47 | public RZIndicatorView(Context context) {
48 | this(context, null);
49 | }
50 |
51 | public RZIndicatorView(Context context, AttributeSet attrs) {
52 | this(context, attrs, 0);
53 | }
54 |
55 | public RZIndicatorView(Context context, AttributeSet attrs, int defStyleAttr) {
56 | super(context, attrs, defStyleAttr);
57 | init();
58 | }
59 |
60 | private void init() {
61 | mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
62 | mPaint.setDither(true);
63 | mPaint.setColor(Color.RED);
64 | mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
65 |
66 | mPaintExpand = new Paint(Paint.ANTI_ALIAS_FLAG);
67 | mPaintExpand.setDither(true);
68 | mPaintExpand.setStyle(Paint.Style.FILL);
69 |
70 | gap = radius = 10f;
71 | diameter = radius * 2;
72 | curPositon = 0;
73 | indiCount = 0;
74 | setViewAnimatiorExpand();
75 | }
76 |
77 | @Override
78 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
79 | super.onMeasure(widthMeasureSpec, heightMeasureSpec);
80 | // 只有1頁,所以不需要顯示
81 | if (indiCount <= 1) {
82 | return;
83 | }
84 | int widthMode = MeasureSpec.getMode(widthMeasureSpec);
85 | int heightMode = MeasureSpec.getMode(heightMeasureSpec);
86 | int widthSize = MeasureSpec.getSize(widthMeasureSpec);
87 | int heightSize = MeasureSpec.getSize(heightMeasureSpec);
88 |
89 | if (widthMode == MeasureSpec.AT_MOST && heightMode == MeasureSpec.EXACTLY) {
90 | widthSize = (int) (diameter * indiCount + radius * (indiCount + 1));
91 | } else if (widthMode == MeasureSpec.EXACTLY && heightMode == MeasureSpec.AT_MOST) {
92 | heightSize = (int) diameter * 2;
93 | } else if (widthMode == MeasureSpec.AT_MOST && heightMode == MeasureSpec.AT_MOST) {
94 | widthSize = (int) (diameter * indiCount + radius * (indiCount + 1));
95 | heightSize = (int) diameter * 2;
96 | } else {
97 | // don't do anything
98 | }
99 | setMeasuredDimension(widthSize, heightSize);
100 | }
101 |
102 | @Override
103 | protected void onSizeChanged(int w, int h, int oldw, int oldh) {
104 | super.onSizeChanged(w, h, oldw, oldh);
105 | }
106 |
107 | @Override
108 | protected void onDraw(Canvas canvas) {
109 | super.onDraw(canvas);
110 |
111 | if (indiCount <= 1) return;
112 | int w = getWidth();
113 | int h = getHeight();
114 | float posX = diameter;
115 | if (w > totalLen) posX += (w - totalLen) / 2;
116 |
117 | for (int i = 0; i < indiCount; i++) {
118 | if (curPositon == i) {
119 | mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
120 | } else {
121 | mPaint.setStyle(Paint.Style.STROKE);
122 | }
123 | //canvas.drawCircle(posX + (diameter + gap) * i, h - diameter, radius, mPaint);
124 | // 垂直水平 居中顯示
125 | canvas.drawCircle(posX + (diameter + gap) * i, h / 2, radius, mPaint);
126 | }
127 | if (canDraw) {
128 | mPaintExpand.setARGB(expandAlphaValue, 255, 80, 80);
129 | canvas.drawCircle(posX + (diameter + gap) * curPositon, h / 2, expandRadius, mPaintExpand);
130 | }
131 | }
132 |
133 | private void setViewAnimatiorExpand() {
134 | animator_expand = ValueAnimator.ofFloat(0f, diameter);
135 | animator_expand.setDuration(DURATION);
136 | animator_expand.setInterpolator(new AccelerateDecelerateInterpolator());
137 | animator_expand.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
138 | @Override
139 | public void onAnimationUpdate(ValueAnimator animation) {
140 | expandRadius = (float) animation.getAnimatedValue();
141 | expandAlphaValue = (int) (255 - (255 * expandRadius) / diameter);
142 | invalidate();
143 | }
144 | });
145 | animator_expand.addListener(new Animator.AnimatorListener() {
146 | @Override
147 | public void onAnimationStart(Animator animation) {
148 | canDraw = true;
149 | }
150 |
151 | @Override
152 | public void onAnimationEnd(Animator animation) {
153 | canDraw = false;
154 | }
155 |
156 | @Override
157 | public void onAnimationCancel(Animator animation) {
158 |
159 | }
160 |
161 | @Override
162 | public void onAnimationRepeat(Animator animation) {
163 |
164 | }
165 | });
166 | }
167 |
168 | public void setRadius(float radius) {
169 | this.radius = radius;
170 | gap = radius;
171 | diameter = radius * 2;
172 | invalidate();
173 | }
174 |
175 | public void setCurPositon(int curPositon, boolean isFirst) {
176 | this.curPositon = curPositon;
177 | invalidate();
178 | if (!isFirst) animator_expand.start();
179 | }
180 |
181 | public void setIndiCount(int indiCount) {
182 | this.indiCount = indiCount;
183 | totalLen = (int) (diameter * indiCount + radius * (indiCount + 1));
184 | invalidate();
185 | }
186 |
187 | public void setIndicatorColor(@ColorInt int color) {
188 | mPaint.setColor(color);
189 | //mPaintExpand.setColor(color);
190 | }
191 |
192 | public void setIndicatorColor(String color) {
193 | mPaint.setColor(Color.parseColor(color));
194 | //mPaintExpand.setColor(Color.parseColor(color));
195 | }
196 |
197 |
198 | private int dp2px(Context context, float dpValue) {
199 | final float scale = context.getResources().getDisplayMetrics().density;
200 | return (int) (dpValue * scale + 0.5f);
201 | }
202 | }
203 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_arrow_back_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-hdpi/ic_arrow_back_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_delete_forever_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-hdpi/ic_delete_forever_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_favorite_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-hdpi/ic_favorite_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_google_play_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-hdpi/ic_google_play_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_arrow_back_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-mdpi/ic_arrow_back_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_delete_forever_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-mdpi/ic_delete_forever_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_favorite_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-mdpi/ic_favorite_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_google_play_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-mdpi/ic_google_play_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_android.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xhdpi/ic_android.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_arrow_back_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xhdpi/ic_arrow_back_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_bird_shape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xhdpi/ic_bird_shape.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_chrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xhdpi/ic_chrome.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_delete_forever_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xhdpi/ic_delete_forever_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_facebook_45dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xhdpi/ic_facebook_45dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_favorite_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xhdpi/ic_favorite_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_google_play_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xhdpi/ic_google_play_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_logout_45dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xhdpi/ic_logout_45dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xhdpi/ic_twitter.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_user_60dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xhdpi/ic_user_60dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_android.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxhdpi/ic_android.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_arrow_back_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxhdpi/ic_arrow_back_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_bird_shape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxhdpi/ic_bird_shape.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_chrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxhdpi/ic_chrome.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_delete_forever_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxhdpi/ic_delete_forever_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_facebook_45dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxhdpi/ic_facebook_45dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_favorite_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxhdpi/ic_favorite_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_google_play_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxhdpi/ic_google_play_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_logout_45dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxhdpi/ic_logout_45dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxhdpi/ic_twitter.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_user_60dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxhdpi/ic_user_60dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_arrow_back_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxxhdpi/ic_arrow_back_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_delete_forever_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxxhdpi/ic_delete_forever_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_favorite_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxxhdpi/ic_favorite_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_google_play_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ray00178/MaterialDesign/9f7d4f6c49a11ca804eaebd942b8eb6d607637b5/app/src/main/res/drawable-xxxhdpi/ic_google_play_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/dialog_myself_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |