diff --git a/README.md b/README.md index e1c1461..e20a562 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,29 @@ disable a swipe direction resideMenu.setSwipeDirectionDisable(ResideMenu.DIRECTION_RIGHT); ``` +use icons from iconify: +```java +IconDrawable drawable = new IconDrawable(context, FontAwesomeIcons.fa_home) + .colorRes(R.color.ab_icon) + .actionBarSize(); +itemHome = new ResideMenuItem(this, drawable, "Home"); +``` + +load background from URL: +```java +//Use this block on your Application class +ResideMenu.imageLoader = new ResideMenu.ImageLoader() { + @Override + public void loadFromUrl(String url, ImageView imageView) { + //Exemple of loading from URL with picasso + Picasso.with(imageView.getContext()).load(url).into(imageView); + } +}; + +//and load from a url +resideMenu.setBackground("some url here"); +``` + ## Custom Usage Do your reside menu configurations, by creating an instance of ResideMenu with your custom layout's resource Ids. If you want to use default layout, just pass that variable as -1. diff --git a/ResideMenu/src/com/special/ResideMenu/ResideMenu.java b/ResideMenu/src/com/special/ResideMenu/ResideMenu.java index 88ab905..9cc9572 100644 --- a/ResideMenu/src/com/special/ResideMenu/ResideMenu.java +++ b/ResideMenu/src/com/special/ResideMenu/ResideMenu.java @@ -7,6 +7,7 @@ import android.graphics.Rect; import android.os.Build; import android.util.DisplayMetrics; +import android.util.Log; import android.view.*; import android.view.animation.AnimationUtils; import android.widget.*; @@ -74,6 +75,7 @@ public class ResideMenu extends FrameLayout { private boolean mUse3D; private static final int ROTATE_Y_ANGLE = 10; + public static ImageLoader imageLoader; public ResideMenu(Context context) { super(context); @@ -216,6 +218,13 @@ private void setShadowAdjustScaleXByOrientation() { public void setBackground(int imageResource) { imageViewBackground.setImageResource(imageResource); } + public void setBackground(String imageUrl) { + if (imageLoader != null) { + imageLoader.loadFromUrl(imageUrl, imageViewBackground); + } else { + Log.e(ResideMenu.class.getName(), "ImageLoader not defined."); + } + } /** * The visibility of the shadow under the activity; @@ -696,6 +705,10 @@ public interface OnMenuListener { public void closeMenu(); } + public interface ImageLoader{ + void loadFromUrl(String url, ImageView imageView); + } + private void showScrollViewMenu(View scrollViewMenu) { if (scrollViewMenu != null && scrollViewMenu.getParent() == null) { addView(scrollViewMenu); diff --git a/ResideMenu/src/com/special/ResideMenu/ResideMenuItem.java b/ResideMenu/src/com/special/ResideMenu/ResideMenuItem.java index 7ac063f..e1aa835 100644 --- a/ResideMenu/src/com/special/ResideMenu/ResideMenuItem.java +++ b/ResideMenu/src/com/special/ResideMenu/ResideMenuItem.java @@ -1,6 +1,8 @@ package com.special.ResideMenu; import android.content.Context; +import android.graphics.drawable.Drawable; +import android.util.Log; import android.view.LayoutInflater; import android.widget.ImageView; import android.widget.LinearLayout; @@ -39,6 +41,44 @@ public ResideMenuItem(Context context, int icon, String title) { tv_title.setText(title); } + public ResideMenuItem(Context context, Drawable icon, int title) { + super(context); + initViews(context); + iv_icon.setImageDrawable(icon); + tv_title.setText(title); + } + + public ResideMenuItem(Context context, Drawable icon, String title) { + super(context); + initViews(context); + iv_icon.setImageDrawable(icon); + tv_title.setText(title); + } + + public ResideMenuItem(Context context, String icon, int title) { + super(context); + initViews(context); + + tv_title.setText(title); + if (ResideMenu.imageLoader != null) { + ResideMenu.imageLoader.loadFromUrl(icon, iv_icon); + } else { + Log.e(ResideMenu.class.getName(), "ImageLoader not defined."); + } + } + + public ResideMenuItem(Context context, String icon, String title) { + super(context); + initViews(context); + + tv_title.setText(title); + if (ResideMenu.imageLoader != null) { + ResideMenu.imageLoader.loadFromUrl(icon, iv_icon); + } else { + Log.e(ResideMenu.class.getName(), "ImageLoader not defined."); + } + } + private void initViews(Context context){ LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.residemenu_item, this); @@ -47,7 +87,7 @@ private void initViews(Context context){ } /** - * set the icon color; + * set the icon resource; * * @param icon */ @@ -55,6 +95,28 @@ public void setIcon(int icon){ iv_icon.setImageResource(icon); } + /** + * set the icon drawable; + * + * @param icon + */ + public void setIcon(Drawable icon){ + iv_icon.setImageDrawable(icon); + } + + /** + * set the icon url; + * + * @param icon + */ + public void setIcon(String icon){ + if (ResideMenu.imageLoader != null) { + ResideMenu.imageLoader.loadFromUrl(icon, iv_icon); + } else { + Log.e(ResideMenu.class.getName(), "ImageLoader not defined."); + } + } + /** * set the title with resource * ; diff --git a/ResideMenuDemo/AndroidManifest.xml b/ResideMenuDemo/AndroidManifest.xml index a57b655..3aecd02 100644 --- a/ResideMenuDemo/AndroidManifest.xml +++ b/ResideMenuDemo/AndroidManifest.xml @@ -1,17 +1,23 @@ - - - + package="com.special.ResideMenuDemo" + android:versionCode="1" + android:versionName="1.0"> + + + + - - + + diff --git a/ResideMenuDemo/src/com/special/ResideMenuDemo/App.java b/ResideMenuDemo/src/com/special/ResideMenuDemo/App.java new file mode 100644 index 0000000..34e6013 --- /dev/null +++ b/ResideMenuDemo/src/com/special/ResideMenuDemo/App.java @@ -0,0 +1,24 @@ +package com.special.ResideMenuDemo; + +import android.app.Application; +import android.widget.ImageView; + +import com.special.ResideMenu.ResideMenu; + +/** + * Created by gusta on 28/11/2016. + */ + +public class App extends Application { + + @Override + public void onCreate() { + super.onCreate(); + ResideMenu.imageLoader = new ResideMenu.ImageLoader() { + @Override + public void loadFromUrl(String url, ImageView imageView) { +// Picasso.with(imageView.getContext()).load(url).into(imageView); + } + }; + } +} diff --git a/ResideMenuDemo/src/com/special/ResideMenuDemo/MenuActivity.java b/ResideMenuDemo/src/com/special/ResideMenuDemo/MenuActivity.java index 9150623..18272b1 100644 --- a/ResideMenuDemo/src/com/special/ResideMenuDemo/MenuActivity.java +++ b/ResideMenuDemo/src/com/special/ResideMenuDemo/MenuActivity.java @@ -37,7 +37,8 @@ private void setUpMenu() { // attach to current activity; resideMenu = new ResideMenu(this); resideMenu.setUse3D(true); - resideMenu.setBackground(R.drawable.menu_background); +// resideMenu.setBackground(R.drawable.menu_background); + resideMenu.setBackground("some url here"); resideMenu.attachToActivity(this); resideMenu.setMenuListener(menuListener); //valid scale factor is between 0.0f and 1.0f. leftmenu'width is 150dip.