From de56d5dcae280b08a595602a5d3123b1fd419357 Mon Sep 17 00:00:00 2001 From: Dexafree Date: Thu, 24 Jul 2014 11:49:32 +0200 Subject: [PATCH] Working on Layouts Also extracted text-button-click interface from a Card and placed it its own file --- .../materiallistviewexample/MainActivity.java | 44 +++- .../SwipeDismissTouchListener.java | 227 ------------------ .../controller/OnButtonPressListener.java | 8 + .../SwipeDismissListener.java} | 52 +--- .../model/BasicCard.java | 8 +- .../model/BasicImageButtonsCard.java | 59 +++++ ...tonsCard.java => BigImageButtonsCard.java} | 24 +- .../model/BigImageCard.java | 2 +- .../view/BasicImageButtonsCardItemView.java | 83 +++++++ ....java => BigImageButtonsCardItemView.java} | 28 +-- .../{ => view}/MaterialListView.java | 15 +- app/src/main/res/drawable-nodpi/dog.png | Bin 0 -> 114852 bytes app/src/main/res/layout/activity_main.xml | 2 +- ..._card_layout.xml => basic_card_layout.xml} | 1 + app/src/main/res/layout/image_card_layout.xml | 3 +- .../layout/image_card_layout_with_buttons.xml | 24 +- .../res/layout/material_basic_card_layout.xml | 93 +++++++ .../material_image_with_buttons_card.xml | 69 ++++++ .../main/res/layout/new_image_card_layout.xml | 88 ++++--- app/src/main/res/values/dimens.xml | 2 +- app/src/main/res/values/styles.xml | 8 +- 21 files changed, 464 insertions(+), 376 deletions(-) delete mode 100644 app/src/main/java/com/dexafree/materiallistviewexample/SwipeDismissTouchListener.java create mode 100644 app/src/main/java/com/dexafree/materiallistviewexample/controller/OnButtonPressListener.java rename app/src/main/java/com/dexafree/materiallistviewexample/{SwipeDismissListViewTouchListener.java => controller/SwipeDismissListener.java} (83%) create mode 100644 app/src/main/java/com/dexafree/materiallistviewexample/model/BasicImageButtonsCard.java rename app/src/main/java/com/dexafree/materiallistviewexample/model/{ImageButtonsCard.java => BigImageButtonsCard.java} (60%) create mode 100644 app/src/main/java/com/dexafree/materiallistviewexample/view/BasicImageButtonsCardItemView.java rename app/src/main/java/com/dexafree/materiallistviewexample/view/{ImageButtonsCardItemView.java => BigImageButtonsCardItemView.java} (65%) rename app/src/main/java/com/dexafree/materiallistviewexample/{ => view}/MaterialListView.java (76%) create mode 100644 app/src/main/res/drawable-nodpi/dog.png rename app/src/main/res/layout/{simple_card_layout.xml => basic_card_layout.xml} (97%) create mode 100644 app/src/main/res/layout/material_basic_card_layout.xml create mode 100644 app/src/main/res/layout/material_image_with_buttons_card.xml diff --git a/app/src/main/java/com/dexafree/materiallistviewexample/MainActivity.java b/app/src/main/java/com/dexafree/materiallistviewexample/MainActivity.java index 212f40c..d452337 100644 --- a/app/src/main/java/com/dexafree/materiallistviewexample/MainActivity.java +++ b/app/src/main/java/com/dexafree/materiallistviewexample/MainActivity.java @@ -4,15 +4,17 @@ import android.graphics.drawable.Drawable; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; -import android.util.Log; import android.widget.TextView; import android.widget.Toast; +import com.dexafree.materiallistviewexample.controller.OnButtonPressListener; import com.dexafree.materiallistviewexample.model.BasicCard; +import com.dexafree.materiallistviewexample.model.BasicImageButtonsCard; +import com.dexafree.materiallistviewexample.model.BigImageButtonsCard; import com.dexafree.materiallistviewexample.model.BigImageCard; import com.dexafree.materiallistviewexample.model.Card; import com.dexafree.materiallistviewexample.model.CardList; -import com.dexafree.materiallistviewexample.model.ImageButtonsCard; +import com.dexafree.materiallistviewexample.view.MaterialListView; public class MainActivity extends ActionBarActivity { @@ -42,7 +44,7 @@ protected void onCreate(Bundle savedInstanceState) { } private void fillArray(){ - for(int i=0;i<15;i++){ + for(int i=0;i<20;i++){ Card card = getRandomCard(i); cardsList.add(card); } @@ -51,11 +53,11 @@ private void fillArray(){ private Card getRandomCard(final int position){ String title = "Card number "+(position+1); String description = "Lorem ipsum dolor sit amet"; - Drawable icon = getResources().getDrawable(R.drawable.photo); - int type = position % 3; + int type = position % 4; Card card; + Drawable icon; switch (type){ @@ -63,6 +65,7 @@ private Card getRandomCard(final int position){ card = new BasicCard(); card.setDescription(description); card.setTitle(title); + icon = getResources().getDrawable(R.drawable.ic_launcher); card.setBitmap(icon); return card; @@ -70,17 +73,40 @@ private Card getRandomCard(final int position){ card = new BigImageCard(); card.setDescription(description); card.setTitle(title); + icon = getResources().getDrawable(R.drawable.photo); card.setBitmap(icon); return card; + case 2: + card = new BasicImageButtonsCard(); + card.setDescription(description); + card.setTitle(title); + icon = getResources().getDrawable(R.drawable.dog); + card.setBitmap(icon); + ((BasicImageButtonsCard)card).setLeftButtonText("IZQUIERDA"); + ((BasicImageButtonsCard)card).setRightButtonText("DERECHA"); + ((BasicImageButtonsCard)card).setOnButtonPressListener(new OnButtonPressListener() { + @Override + public void onLeftTextPressed(TextView textView) { + Toast.makeText(mContext, "PULSADA IZQUIERDA EN NUMERO "+(position+1), Toast.LENGTH_SHORT).show(); + } + + @Override + public void onRightTextPressed(TextView textView) { + Toast.makeText(mContext, "PULSADA DERECHA EN NUMERO "+(position+1), Toast.LENGTH_SHORT).show(); + } + }); + return card; + default: - card = new ImageButtonsCard(); + card = new BigImageButtonsCard(); card.setDescription(description); card.setTitle(title); + icon = getResources().getDrawable(R.drawable.photo); card.setBitmap(icon); - ((ImageButtonsCard)card).setLeftButtonText("IZQUIERDA"); - ((ImageButtonsCard)card).setRightButtonText("DERECHA"); - ((ImageButtonsCard)card).setOnButtonPressListener(new ImageButtonsCard.OnButtonPressListener() { + ((BigImageButtonsCard)card).setLeftButtonText("IZQUIERDA"); + ((BigImageButtonsCard)card).setRightButtonText("DERECHA"); + ((BigImageButtonsCard)card).setOnButtonPressListener(new OnButtonPressListener() { @Override public void onLeftTextPressed(TextView textView) { Toast.makeText(mContext, "PULSADA IZQUIERDA EN NUMERO "+(position+1), Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/java/com/dexafree/materiallistviewexample/SwipeDismissTouchListener.java b/app/src/main/java/com/dexafree/materiallistviewexample/SwipeDismissTouchListener.java deleted file mode 100644 index cc89750..0000000 --- a/app/src/main/java/com/dexafree/materiallistviewexample/SwipeDismissTouchListener.java +++ /dev/null @@ -1,227 +0,0 @@ -package com.dexafree.materiallistviewexample; - -import android.view.MotionEvent; -import android.view.VelocityTracker; -import android.view.View; -import android.view.ViewConfiguration; -import android.view.ViewGroup; -import com.nineoldandroids.animation.Animator; -import com.nineoldandroids.animation.AnimatorListenerAdapter; -import com.nineoldandroids.animation.ValueAnimator; - -import static com.nineoldandroids.view.ViewHelper.setAlpha; -import static com.nineoldandroids.view.ViewHelper.setTranslationX; -import static com.nineoldandroids.view.ViewPropertyAnimator.animate; - -/** - * A {@link android.view.View.OnTouchListener} that makes any {@link View} dismissable when the - * user swipes (drags her finger) horizontally across the view. - * - *

For {@link android.widget.ListView} list items that don't manage their own touch events - * (i.e. you're using - * {@link android.widget.ListView#setOnItemClickListener(android.widget.AdapterView.OnItemClickListener)} - * or an equivalent listener on {@link android.app.ListActivity} or - * {@link android.app.ListFragment}, use {@link SwipeDismissListViewTouchListener} instead.

- * - *

Example usage:

- * - *
- * view.setOnTouchListener(new SwipeDismissTouchListener(
- *         view,
- *         null, // Optional token/cookie object
- *         new SwipeDismissTouchListener.OnDismissCallback() {
- *             public void onDismiss(View view, Object token) {
- *                 parent.removeView(view);
- *             }
- *         }));
- * 
- * - *

This class Requires API level 12 or later due to use of {@link - * android.view.ViewPropertyAnimator}.

- * - * @see SwipeDismissListViewTouchListener - */ -public class SwipeDismissTouchListener implements View.OnTouchListener { - // Cached ViewConfiguration and system-wide constant values - private int mSlop; - private int mMinFlingVelocity; - private int mMaxFlingVelocity; - private long mAnimationTime; - - // Fixed properties - private View mView; - private OnDismissCallback mCallback; - private int mViewWidth = 1; // 1 and not 0 to prevent dividing by zero - - // Transient properties - private float mDownX; - private boolean mSwiping; - private Object mToken; - private VelocityTracker mVelocityTracker; - private float mTranslationX; - - /** - * The callback interface used by {@link SwipeDismissTouchListener} to inform its client - * about a successful dismissal of the view for which it was created. - */ - public interface OnDismissCallback { - /** - * Called when the user has indicated they she would like to dismiss the view. - * - * @param view The originating {@link View} to be dismissed. - * @param token The optional token passed to this object's constructor. - */ - void onDismiss(View view, Object token); - } - - /** - * Constructs a new swipe-to-dismiss touch listener for the given view. - * - * @param view The view to make dismissable. - * @param token An optional token/cookie object to be passed through to the callback. - * @param callback The callback to trigger when the user has indicated that she would like to - * dismiss this view. - */ - public SwipeDismissTouchListener(View view, Object token, OnDismissCallback callback) { - ViewConfiguration vc = ViewConfiguration.get(view.getContext()); - mSlop = vc.getScaledTouchSlop(); - mMinFlingVelocity = vc.getScaledMinimumFlingVelocity(); - mMaxFlingVelocity = vc.getScaledMaximumFlingVelocity(); - mAnimationTime = view.getContext().getResources().getInteger( - android.R.integer.config_shortAnimTime); - mView = view; - mToken = token; - mCallback = callback; - } - - @Override - public boolean onTouch(View view, MotionEvent motionEvent) { - // offset because the view is translated during swipe - motionEvent.offsetLocation(mTranslationX, 0); - - if (mViewWidth < 2) { - mViewWidth = mView.getWidth(); - } - - switch (motionEvent.getActionMasked()) { - case MotionEvent.ACTION_DOWN: { - // TODO: ensure this is a finger, and set a flag - mDownX = motionEvent.getRawX(); - mVelocityTracker = VelocityTracker.obtain(); - mVelocityTracker.addMovement(motionEvent); - view.onTouchEvent(motionEvent); - return false; - } - - case MotionEvent.ACTION_UP: { - if (mVelocityTracker == null) { - break; - } - - float deltaX = motionEvent.getRawX() - mDownX; - mVelocityTracker.addMovement(motionEvent); - mVelocityTracker.computeCurrentVelocity(1000); - float velocityX = Math.abs(mVelocityTracker.getXVelocity()); - float velocityY = Math.abs(mVelocityTracker.getYVelocity()); - boolean dismiss = false; - boolean dismissRight = false; - if (Math.abs(deltaX) > mViewWidth / 2) { - dismiss = true; - dismissRight = deltaX > 0; - } else if (mMinFlingVelocity <= velocityX && velocityX <= mMaxFlingVelocity - && velocityY < velocityX) { - dismiss = true; - dismissRight = mVelocityTracker.getXVelocity() > 0; - } - if (dismiss) { - // dismiss - animate(mView) - .translationX(dismissRight ? mViewWidth : -mViewWidth) - .alpha(0) - .setDuration(mAnimationTime) - .setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - performDismiss(); - } - }); - } else { - // cancel - animate(mView) - .translationX(0) - .alpha(1) - .setDuration(mAnimationTime) - .setListener(null); - } - mVelocityTracker = null; - mTranslationX = 0; - mDownX = 0; - mSwiping = false; - break; - } - - case MotionEvent.ACTION_MOVE: { - if (mVelocityTracker == null) { - break; - } - - mVelocityTracker.addMovement(motionEvent); - float deltaX = motionEvent.getRawX() - mDownX; - if (Math.abs(deltaX) > mSlop) { - mSwiping = true; - mView.getParent().requestDisallowInterceptTouchEvent(true); - - // Cancel listview's touch - MotionEvent cancelEvent = MotionEvent.obtain(motionEvent); - cancelEvent.setAction(MotionEvent.ACTION_CANCEL | - (motionEvent.getActionIndex() << MotionEvent.ACTION_POINTER_INDEX_SHIFT)); - mView.onTouchEvent(cancelEvent); - } - - if (mSwiping) { - mTranslationX = deltaX; - setTranslationX(mView, deltaX); - // TODO: use an ease-out interpolator or such - setAlpha(mView, Math.max(0f, Math.min(1f, - 1f - 2f * Math.abs(deltaX) / mViewWidth))); - return true; - } - break; - } - } - return false; - } - - private void performDismiss() { - // Animate the dismissed view to zero-height and then fire the dismiss callback. - // This triggers layout on each animation frame; in the future we may want to do something - // smarter and more performant. - - final ViewGroup.LayoutParams lp = mView.getLayoutParams(); - final int originalHeight = mView.getHeight(); - - ValueAnimator animator = ValueAnimator.ofInt(originalHeight, 1).setDuration(mAnimationTime); - - animator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mCallback.onDismiss(mView, mToken); - // Reset view presentation - setAlpha(mView, 1f); - setTranslationX(mView, 0); - lp.height = originalHeight; - mView.setLayoutParams(lp); - } - }); - - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator valueAnimator) { - lp.height = (Integer) valueAnimator.getAnimatedValue(); - mView.setLayoutParams(lp); - } - }); - - animator.start(); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/dexafree/materiallistviewexample/controller/OnButtonPressListener.java b/app/src/main/java/com/dexafree/materiallistviewexample/controller/OnButtonPressListener.java new file mode 100644 index 0000000..9e942fc --- /dev/null +++ b/app/src/main/java/com/dexafree/materiallistviewexample/controller/OnButtonPressListener.java @@ -0,0 +1,8 @@ +package com.dexafree.materiallistviewexample.controller; + +import android.widget.TextView; + +public interface OnButtonPressListener{ + void onLeftTextPressed(TextView textView); + void onRightTextPressed(TextView textView); +} diff --git a/app/src/main/java/com/dexafree/materiallistviewexample/SwipeDismissListViewTouchListener.java b/app/src/main/java/com/dexafree/materiallistviewexample/controller/SwipeDismissListener.java similarity index 83% rename from app/src/main/java/com/dexafree/materiallistviewexample/SwipeDismissListViewTouchListener.java rename to app/src/main/java/com/dexafree/materiallistviewexample/controller/SwipeDismissListener.java index 3bb082d..bd0cd8c 100644 --- a/app/src/main/java/com/dexafree/materiallistviewexample/SwipeDismissListViewTouchListener.java +++ b/app/src/main/java/com/dexafree/materiallistviewexample/controller/SwipeDismissListener.java @@ -1,4 +1,4 @@ -package com.dexafree.materiallistviewexample; +package com.dexafree.materiallistviewexample.controller; import android.graphics.Rect; import android.view.MotionEvent; @@ -20,46 +20,8 @@ import static com.nineoldandroids.view.ViewHelper.setTranslationX; import static com.nineoldandroids.view.ViewPropertyAnimator.animate; -/** - * A {@link android.view.View.OnTouchListener} that makes the list items in a {@link ListView} - * dismissable. {@link ListView} is given special treatment because by default it handles touches - * for its list items... i.e. it's in charge of drawing the pressed state (the list selector), - * handling list item clicks, etc. - * - *

After creating the listener, the caller should also call - * {@link ListView#setOnScrollListener(android.widget.AbsListView.OnScrollListener)}, passing - * in the scroll listener returned by {@link #makeScrollListener()}. If a scroll listener is - * already assigned, the caller should still pass scroll changes through to this listener. This will - * ensure that this {@link SwipeDismissListViewTouchListener} is paused during list view - * scrolling.

- * - *

Example usage:

- * - *
- * SwipeDismissListViewTouchListener touchListener =
- *         new SwipeDismissListViewTouchListener(
- *                 listView,
- *                 new SwipeDismissListViewTouchListener.OnDismissCallback() {
- *                     public void onDismiss(ListView listView, int[] reverseSortedPositions) {
- *                         for (int position : reverseSortedPositions) {
- *                             adapter.remove(adapter.getItem(position));
- *                         }
- *                         adapter.notifyDataSetChanged();
- *                     }
- *                 });
- * listView.setOnTouchListener(touchListener);
- * listView.setOnScrollListener(touchListener.makeScrollListener());
- * 
- * - *

This class Requires API level 12 or later due to use of {@link - * android.view.ViewPropertyAnimator}.

- * - *

For a generalized {@link android.view.View.OnTouchListener} that makes any view dismissable, - * see {@link SwipeDismissTouchListener}.

- * - * @see SwipeDismissTouchListener - */ -public class SwipeDismissListViewTouchListener implements View.OnTouchListener { + +public class SwipeDismissListener implements View.OnTouchListener { // Cached ViewConfiguration and system-wide constant values private int mSlop; private int mMinFlingVelocity; @@ -82,7 +44,7 @@ public class SwipeDismissListViewTouchListener implements View.OnTouchListener { private boolean mPaused; /** - * The callback interface used by {@link SwipeDismissListViewTouchListener} to inform its client + * The callback interface used by {@link SwipeDismissListener} to inform its client * about a successful dismissal of one or more list item positions. */ public interface OnDismissCallback { @@ -105,7 +67,7 @@ public interface OnDismissCallback { * @param callback The callback to trigger when the user has indicated that she would like to * dismiss one or more list items. */ - public SwipeDismissListViewTouchListener(ListView listView, OnDismissCallback callback) { + public SwipeDismissListener(ListView listView, OnDismissCallback callback) { ViewConfiguration vc = ViewConfiguration.get(listView.getContext()); mSlop = vc.getScaledTouchSlop(); mMinFlingVelocity = vc.getScaledMinimumFlingVelocity(); @@ -131,9 +93,9 @@ public void setEnabled(boolean enabled) { * {@link ListView#setOnScrollListener(android.widget.AbsListView.OnScrollListener)}. * If a scroll listener is already assigned, the caller should still pass scroll changes * through to this listener. This will ensure that this - * {@link SwipeDismissListViewTouchListener} is paused during list view scrolling.

+ * {@link SwipeDismissListener} is paused during list view scrolling.

* - * @see {@link SwipeDismissListViewTouchListener} + * @see {@link SwipeDismissListener} */ public AbsListView.OnScrollListener makeScrollListener() { return new AbsListView.OnScrollListener() { diff --git a/app/src/main/java/com/dexafree/materiallistviewexample/model/BasicCard.java b/app/src/main/java/com/dexafree/materiallistviewexample/model/BasicCard.java index eb11027..e5135b1 100644 --- a/app/src/main/java/com/dexafree/materiallistviewexample/model/BasicCard.java +++ b/app/src/main/java/com/dexafree/materiallistviewexample/model/BasicCard.java @@ -9,22 +9,22 @@ public class BasicCard extends Card { public BasicCard(){ super(); - this.setLayout(R.layout.simple_card_layout); + this.setLayout(R.layout.basic_card_layout); } public BasicCard(String title, String description, Bitmap bitmap) { super(title, description, bitmap); - this.setLayout(R.layout.simple_card_layout); + this.setLayout(R.layout.basic_card_layout); } public BasicCard(String title, String description, int resourceId) { super(title, description, resourceId); - this.setLayout(R.layout.simple_card_layout); + this.setLayout(R.layout.basic_card_layout); } public BasicCard(String title, String description, Drawable drawable) { super(title, description, drawable); - this.setLayout(R.layout.simple_card_layout); + this.setLayout(R.layout.basic_card_layout); } diff --git a/app/src/main/java/com/dexafree/materiallistviewexample/model/BasicImageButtonsCard.java b/app/src/main/java/com/dexafree/materiallistviewexample/model/BasicImageButtonsCard.java new file mode 100644 index 0000000..c540811 --- /dev/null +++ b/app/src/main/java/com/dexafree/materiallistviewexample/model/BasicImageButtonsCard.java @@ -0,0 +1,59 @@ +package com.dexafree.materiallistviewexample.model; + +import android.graphics.Bitmap; +import android.graphics.drawable.Drawable; + +import com.dexafree.materiallistviewexample.R; +import com.dexafree.materiallistviewexample.controller.OnButtonPressListener; + +public class BasicImageButtonsCard extends Card { + + private String leftButtonText; + private String rightButtonText; + private OnButtonPressListener mListener; + + public BasicImageButtonsCard(){ + super(); + this.setLayout(R.layout.material_basic_card_layout); + } + + public BasicImageButtonsCard(String title, String description, Bitmap bitmap) { + super(title, description, bitmap); + this.setLayout(R.layout.material_basic_card_layout); + } + + public BasicImageButtonsCard(String title, String description, int resourceId) { + super(title, description, resourceId); + this.setLayout(R.layout.material_basic_card_layout); + } + + public BasicImageButtonsCard(String title, String description, Drawable drawable) { + super(title, description, drawable); + this.setLayout(R.layout.material_basic_card_layout); + } + + public String getLeftButtonText() { + return leftButtonText; + } + + public void setLeftButtonText(String leftButtonText) { + this.leftButtonText = leftButtonText; + } + + public String getRightButtonText() { + return rightButtonText; + } + + public void setRightButtonText(String rightButtonText) { + this.rightButtonText = rightButtonText; + } + + public OnButtonPressListener getOnButtonPressedListener() { + return mListener; + } + + public void setOnButtonPressListener(OnButtonPressListener listener) { + this.mListener = listener; + } + +} diff --git a/app/src/main/java/com/dexafree/materiallistviewexample/model/ImageButtonsCard.java b/app/src/main/java/com/dexafree/materiallistviewexample/model/BigImageButtonsCard.java similarity index 60% rename from app/src/main/java/com/dexafree/materiallistviewexample/model/ImageButtonsCard.java rename to app/src/main/java/com/dexafree/materiallistviewexample/model/BigImageButtonsCard.java index a15744b..39cf2d4 100644 --- a/app/src/main/java/com/dexafree/materiallistviewexample/model/ImageButtonsCard.java +++ b/app/src/main/java/com/dexafree/materiallistviewexample/model/BigImageButtonsCard.java @@ -5,36 +5,32 @@ import android.widget.TextView; import com.dexafree.materiallistviewexample.R; +import com.dexafree.materiallistviewexample.controller.OnButtonPressListener; -public class ImageButtonsCard extends Card { - - public interface OnButtonPressListener{ - void onLeftTextPressed(TextView textView); - void onRightTextPressed(TextView textView); - } +public class BigImageButtonsCard extends Card { private String leftButtonText; private String rightButtonText; private OnButtonPressListener mListener; - public ImageButtonsCard(){ + public BigImageButtonsCard(){ super(); - this.setLayout(R.layout.image_card_layout_with_buttons); + this.setLayout(R.layout.material_image_with_buttons_card); } - public ImageButtonsCard(String title, String description, Bitmap bitmap) { + public BigImageButtonsCard(String title, String description, Bitmap bitmap) { super(title, description, bitmap); - this.setLayout(R.layout.image_card_layout_with_buttons); + this.setLayout(R.layout.material_image_with_buttons_card); } - public ImageButtonsCard(String title, String description, int resourceId) { + public BigImageButtonsCard(String title, String description, int resourceId) { super(title, description, resourceId); - this.setLayout(R.layout.image_card_layout_with_buttons); + this.setLayout(R.layout.material_image_with_buttons_card); } - public ImageButtonsCard(String title, String description, Drawable drawable) { + public BigImageButtonsCard(String title, String description, Drawable drawable) { super(title, description, drawable); - this.setLayout(R.layout.image_card_layout_with_buttons); + this.setLayout(R.layout.material_image_with_buttons_card); } public String getLeftButtonText() { diff --git a/app/src/main/java/com/dexafree/materiallistviewexample/model/BigImageCard.java b/app/src/main/java/com/dexafree/materiallistviewexample/model/BigImageCard.java index f01712c..05d851e 100644 --- a/app/src/main/java/com/dexafree/materiallistviewexample/model/BigImageCard.java +++ b/app/src/main/java/com/dexafree/materiallistviewexample/model/BigImageCard.java @@ -9,7 +9,7 @@ public class BigImageCard extends Card { public BigImageCard(){ super(); - this.setLayout(R.layout.image_card_layout); + this.setLayout(R.layout.new_image_card_layout); } public BigImageCard(String title, String description, Bitmap bitmap) { diff --git a/app/src/main/java/com/dexafree/materiallistviewexample/view/BasicImageButtonsCardItemView.java b/app/src/main/java/com/dexafree/materiallistviewexample/view/BasicImageButtonsCardItemView.java new file mode 100644 index 0000000..e659d2b --- /dev/null +++ b/app/src/main/java/com/dexafree/materiallistviewexample/view/BasicImageButtonsCardItemView.java @@ -0,0 +1,83 @@ +package com.dexafree.materiallistviewexample.view; + +import android.content.Context; +import android.graphics.Bitmap; +import android.util.AttributeSet; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import com.dexafree.materiallistviewexample.R; +import com.dexafree.materiallistviewexample.model.BasicImageButtonsCard; +import com.dexafree.materiallistviewexample.model.GridItemView; + +public class BasicImageButtonsCardItemView extends GridItemView { + TextView mTitle; + + ImageView mImage; + + TextView mDescription; + + TextView mLeftText; + + TextView mRightText; + + public BasicImageButtonsCardItemView(Context context) { + super(context); + } + + public BasicImageButtonsCardItemView(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public BasicImageButtonsCardItemView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + + @Override + public void configureView(BasicImageButtonsCard card) { + setTitle(card.getTitle()); + setDescription(card.getDescription()); + setImage(card.getBitmap()); + setLeftText(card); + setRightText(card); + } + + public void setTitle(String title){ + mTitle = (TextView)findViewById(R.id.titleTextView); + mTitle.setText(title); + } + + public void setDescription(String description){ + mDescription = (TextView)findViewById(R.id.descriptionTextView); + mDescription.setText(description); + } + + public void setImage(Bitmap bm){ + mImage = (ImageView)findViewById(R.id.imageView); + mImage.setImageBitmap(bm); + } + + public void setLeftText(final BasicImageButtonsCard card){ + mLeftText = (TextView) findViewById(R.id.left_text_button); + mLeftText.setText(card.getLeftButtonText()); + mLeftText.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + card.getOnButtonPressedListener().onLeftTextPressed(mLeftText); + } + }); + } + + public void setRightText(final BasicImageButtonsCard card){ + mRightText = (TextView) findViewById(R.id.right_text_button); + mRightText.setText(card.getRightButtonText()); + mRightText.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + card.getOnButtonPressedListener().onRightTextPressed(mRightText); + } + }); + } +} diff --git a/app/src/main/java/com/dexafree/materiallistviewexample/view/ImageButtonsCardItemView.java b/app/src/main/java/com/dexafree/materiallistviewexample/view/BigImageButtonsCardItemView.java similarity index 65% rename from app/src/main/java/com/dexafree/materiallistviewexample/view/ImageButtonsCardItemView.java rename to app/src/main/java/com/dexafree/materiallistviewexample/view/BigImageButtonsCardItemView.java index 5e85775..83a3b87 100644 --- a/app/src/main/java/com/dexafree/materiallistviewexample/view/ImageButtonsCardItemView.java +++ b/app/src/main/java/com/dexafree/materiallistviewexample/view/BigImageButtonsCardItemView.java @@ -5,14 +5,13 @@ import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; -import android.widget.LinearLayout; import android.widget.TextView; import com.dexafree.materiallistviewexample.R; +import com.dexafree.materiallistviewexample.model.BigImageButtonsCard; import com.dexafree.materiallistviewexample.model.GridItemView; -import com.dexafree.materiallistviewexample.model.ImageButtonsCard; -public class ImageButtonsCardItemView extends GridItemView{ +public class BigImageButtonsCardItemView extends GridItemView{ TextView mTitle; @@ -24,32 +23,21 @@ public class ImageButtonsCardItemView extends GridItemView{ TextView mRightText; - public ImageButtonsCardItemView(Context context) { + public BigImageButtonsCardItemView(Context context) { super(context); } - public ImageButtonsCardItemView(Context context, AttributeSet attrs) { + public BigImageButtonsCardItemView(Context context, AttributeSet attrs) { super(context, attrs); } - public ImageButtonsCardItemView(Context context, AttributeSet attrs, int defStyle) { + public BigImageButtonsCardItemView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } - /*@Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - if(mImage != null) { - LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mImage.getLayoutParams(); - params.height = getMeasuredWidth(); - mImage.setLayoutParams(params); - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - } - }*/ - @Override - public void configureView(ImageButtonsCard card) { + public void configureView(BigImageButtonsCard card) { setTitle(card.getTitle()); setDescription(card.getDescription()); setImage(card.getBitmap()); @@ -72,7 +60,7 @@ public void setImage(Bitmap bm){ mImage.setImageBitmap(bm); } - public void setLeftText(final ImageButtonsCard card){ + public void setLeftText(final BigImageButtonsCard card){ mLeftText = (TextView) findViewById(R.id.left_text_button); mLeftText.setText(card.getLeftButtonText()); mLeftText.setOnClickListener(new OnClickListener() { @@ -83,7 +71,7 @@ public void onClick(View view) { }); } - public void setRightText(final ImageButtonsCard card){ + public void setRightText(final BigImageButtonsCard card){ mRightText = (TextView) findViewById(R.id.right_text_button); mRightText.setText(card.getRightButtonText()); mRightText.setOnClickListener(new OnClickListener() { diff --git a/app/src/main/java/com/dexafree/materiallistviewexample/MaterialListView.java b/app/src/main/java/com/dexafree/materiallistviewexample/view/MaterialListView.java similarity index 76% rename from app/src/main/java/com/dexafree/materiallistviewexample/MaterialListView.java rename to app/src/main/java/com/dexafree/materiallistviewexample/view/MaterialListView.java index d23132b..88f8813 100644 --- a/app/src/main/java/com/dexafree/materiallistviewexample/MaterialListView.java +++ b/app/src/main/java/com/dexafree/materiallistviewexample/view/MaterialListView.java @@ -1,9 +1,12 @@ -package com.dexafree.materiallistviewexample; +package com.dexafree.materiallistviewexample.view; import android.content.Context; import android.util.AttributeSet; import android.widget.ListView; +import com.dexafree.materiallistviewexample.MaterialListViewAdapter; +import com.dexafree.materiallistviewexample.controller.SwipeDismissListener; + public class MaterialListView extends ListView { @@ -28,9 +31,9 @@ public void setMaterialListViewAdapter (MaterialListViewAdapter adapter) { setDividerHeight (8); } - public void setOnDismissCallback (SwipeDismissListViewTouchListener.OnDismissCallback callback) { + public void setOnDismissCallback (SwipeDismissListener.OnDismissCallback callback) { - SwipeDismissListViewTouchListener touchListener = new SwipeDismissListViewTouchListener (this, callback); + SwipeDismissListener touchListener = new SwipeDismissListener(this, callback); setOnTouchListener (touchListener); setOnScrollListener (touchListener.makeScrollListener()); @@ -38,10 +41,10 @@ public void setOnDismissCallback (SwipeDismissListViewTouchListener.OnDismissCal } public void setDefaultListeners () { - SwipeDismissListViewTouchListener touchListener = - new SwipeDismissListViewTouchListener( + SwipeDismissListener touchListener = + new SwipeDismissListener( this, - new SwipeDismissListViewTouchListener.OnDismissCallback () { + new SwipeDismissListener.OnDismissCallback () { @Override public void onDismiss (ListView listView, int[] reverseSortedPositions) { diff --git a/app/src/main/res/drawable-nodpi/dog.png b/app/src/main/res/drawable-nodpi/dog.png new file mode 100644 index 0000000000000000000000000000000000000000..b2ac2c13a2e23f72a5c93ff2bad77708270bffc9 GIT binary patch literal 114852 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index d7662e2..1184907 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -8,7 +8,7 @@ android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> - diff --git a/app/src/main/res/layout/simple_card_layout.xml b/app/src/main/res/layout/basic_card_layout.xml similarity index 97% rename from app/src/main/res/layout/simple_card_layout.xml rename to app/src/main/res/layout/basic_card_layout.xml index e6dcfb6..53ecea5 100644 --- a/app/src/main/res/layout/simple_card_layout.xml +++ b/app/src/main/res/layout/basic_card_layout.xml @@ -37,6 +37,7 @@ diff --git a/app/src/main/res/layout/image_card_layout_with_buttons.xml b/app/src/main/res/layout/image_card_layout_with_buttons.xml index 30d21a0..f8f11de 100644 --- a/app/src/main/res/layout/image_card_layout_with_buttons.xml +++ b/app/src/main/res/layout/image_card_layout_with_buttons.xml @@ -1,6 +1,6 @@ - @@ -15,8 +15,7 @@ + android:orientation="vertical"> @@ -34,26 +33,37 @@ + android:orientation="horizontal" + android:layout_marginTop="10dp" + android:layout_marginLeft="8dp" + android:layout_marginBottom="10dp" + android:weightSum="4"> + android:maxLines="1" + android:layout_weight="1" + android:layout_marginLeft="8dp" + android:layout_marginRight="2dp"/> + android:layout_marginLeft="2dp" + android:layout_marginRight="4dp" + android:maxLines="1" + android:layout_weight="1"/> @@ -61,4 +71,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/material_basic_card_layout.xml b/app/src/main/res/layout/material_basic_card_layout.xml new file mode 100644 index 0000000..dc45124 --- /dev/null +++ b/app/src/main/res/layout/material_basic_card_layout.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/material_image_with_buttons_card.xml b/app/src/main/res/layout/material_image_with_buttons_card.xml new file mode 100644 index 0000000..a217483 --- /dev/null +++ b/app/src/main/res/layout/material_image_with_buttons_card.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/new_image_card_layout.xml b/app/src/main/res/layout/new_image_card_layout.xml index 2cf8e15..523cdf5 100644 --- a/app/src/main/res/layout/new_image_card_layout.xml +++ b/app/src/main/res/layout/new_image_card_layout.xml @@ -2,46 +2,58 @@ - - - - - - - - - - - - - - \ No newline at end of file + android:layout_height="wrap_content" + android:layout_marginLeft="4dp" + android:layout_marginRight="4dp" + android:layout_marginTop="2dp" + android:layout_marginBottom="2dp" + card_view:cardCornerRadius="2dp"> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 0205912..d1e2f44 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -10,5 +10,5 @@ 4dp 4dp - 6dp + 2dp diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index b6bd49c..a4929b6 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -19,7 +19,6 @@ wrap_content - + +