Skip to content

Instantly share code, notes, and snippets.

@francisnnumbi
Created July 19, 2017 11:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save francisnnumbi/b83e109cf13f60977ea32f08cdabac0a to your computer and use it in GitHub Desktop.
Save francisnnumbi/b83e109cf13f60977ea32f08cdabac0a to your computer and use it in GitHub Desktop.
An implementation of a Snackbar on which Imageview is added. It is the same Snackbar. I retrieved its view, cast into layout and added Imageview private void popInfo(View view, String info) { Snacker sn = Snacker.build(view, info, Snacker.INDEFINITE); sn.getView().setBackgroundColor(Color.CYAN); sn.setImageResource(R.drawable.ic_launcher); sn.se…
import android.support.design.widget.Snackbar;
import android.view.View;
import android.widget.TextView;
import android.view.View.OnClickListener;
import android.graphics.drawable.Drawable;
import android.widget.ImageView;
import android.graphics.drawable.Icon;
import android.graphics.Bitmap;
public class Snacker
{
private Snackbar mSnackbar;
public static int SHORT = Snackbar.LENGTH_SHORT,
LONG = Snackbar.LENGTH_LONG,
INDEFINITE = Snackbar.LENGTH_INDEFINITE;
private static Snacker mSnacker = new Snacker();
public static Snacker build(View view, CharSequence text, int duration){
mSnacker.mSnackbar = Snackbar.make(view, text, duration);
return mSnacker;
}
public static Snacker setAction(CharSequence action, OnClickListener listener){
mSnacker.mSnackbar.setAction(action, listener);
return mSnacker;
}
public View getView(){
return mSnackbar.getView();
}
private ImageView imageView(){
Snackbar.SnackbarLayout l = (Snackbar.SnackbarLayout) getView();
ImageView iv = new ImageView(l.getContext());
l.addView(iv, 0);
return iv;
}
public void setDrawableImage(Drawable drawable){
imageView().setImageDrawable(drawable);
}
public void setImageResource(int resId){
imageView().setImageResource(resId);
}
public void setIcon(Icon icn){
imageView().setImageIcon(icn);
}
public void setImageBitmap(Bitmap bmp){
imageView().setImageBitmap(bmp);
}
public TextView textInfo(){
return (TextView)mSnackbar.getView().findViewById(android.support.design.R.id.snackbar_text);
}
public TextView textAction(){
return (TextView)mSnackbar.getView().findViewById(android.support.design.R.id.snackbar_action);
}
public void pop(){
mSnackbar.show();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment