List of usage examples for android.graphics.drawable Drawable setCallback
public final void setCallback(@Nullable Callback cb)
From source file:Main.java
public static void unbindDrawable(Drawable d) { if (d != null) d.setCallback(null); }
From source file:Main.java
/** * Hack to fix pre JB MR1 Kudos to @cyrilmottier * * @param view view drawable attached too. * @param drawable drawable which gets invalidated *///from ww w .jav a 2 s.co m static void fixParallaxBackgroundPreJBMR1(final View view, final Drawable drawable) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2) { drawable.setCallback(new Drawable.Callback() { @Override public void invalidateDrawable(Drawable who) { view.setBackgroundDrawable(who); } @Override public void scheduleDrawable(Drawable who, Runnable what, long when) { } @Override public void unscheduleDrawable(Drawable who, Runnable what) { } }); } }
From source file:Main.java
/** * Hack to fix pre JB MR1 Kudos to @cyrilmottier * * @param view view drawable attached too. * @param drawable drawable which gets invalidated *//*from w ww . j a v a2 s. c om*/ static void fixParallaxBackgroundPreJBMR1(final View view, final Drawable drawable) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) { drawable.setCallback(new Drawable.Callback() { @Override public void invalidateDrawable(Drawable who) { view.setBackgroundDrawable(who); } @Override public void scheduleDrawable(Drawable who, Runnable what, long when) { } @Override public void unscheduleDrawable(Drawable who, Runnable what) { } }); } }
From source file:Main.java
/** * Hack to fix pre JB MR1 Kudos to @cyrilmottier * * @param view view drawable attached too. * @param drawable drawable which gets invalidated */// w w w . j a va 2 s . com static void fixParallaxBackgroundPreJBMR1(final View view, final Drawable drawable) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) { drawable.setCallback(new Drawable.Callback() { @SuppressWarnings("deprecation") @Override public void invalidateDrawable(Drawable who) { view.setBackgroundDrawable(who); } @Override public void scheduleDrawable(Drawable who, Runnable what, long when) { } @Override public void unscheduleDrawable(Drawable who, Runnable what) { } }); } }
From source file:Main.java
public static void unBindDrawables(View view) { if (view != null) { try {// w w w. j a v a 2 s . c o m Drawable drawable = view.getBackground(); if (drawable != null) { drawable.setCallback(null); } if (view instanceof ViewGroup && !(view instanceof AdapterView)) { ViewGroup viewGroup = (ViewGroup) view; int viewGroupChildCount = viewGroup.getChildCount(); for (int j = 0; j < viewGroupChildCount; j++) { unBindDrawables(viewGroup.getChildAt(j)); } viewGroup.removeAllViews(); } } catch (Exception e) { e.printStackTrace(); } } }
From source file:Main.java
public static void traverseAndRecolor(View root, int color, boolean withStates, boolean setClickableItemBackgrounds) { Context context = root.getContext(); if (setClickableItemBackgrounds && root.isClickable()) { StateListDrawable selectableItemBackground = new StateListDrawable(); selectableItemBackground.addState(new int[] { android.R.attr.state_pressed }, new ColorDrawable((color & 0xffffff) | 0x33000000)); selectableItemBackground.addState(new int[] { android.R.attr.state_focused }, new ColorDrawable((color & 0xffffff) | 0x44000000)); selectableItemBackground.addState(new int[] {}, null); root.setBackground(selectableItemBackground); }/*from w w w . jav a 2 s .c om*/ if (root instanceof ViewGroup) { ViewGroup parent = (ViewGroup) root; for (int i = 0; i < parent.getChildCount(); i++) { traverseAndRecolor(parent.getChildAt(i), color, withStates, setClickableItemBackgrounds); } } else if (root instanceof ImageView) { ImageView imageView = (ImageView) root; Drawable sourceDrawable = imageView.getDrawable(); if (withStates && sourceDrawable != null && sourceDrawable instanceof BitmapDrawable) { imageView.setImageDrawable( makeRecoloredDrawable(context, (BitmapDrawable) sourceDrawable, color, true)); } else { imageView.setColorFilter(color, PorterDuff.Mode.MULTIPLY); } } else if (root instanceof TextView) { TextView textView = (TextView) root; if (withStates) { int sourceColor = textView.getCurrentTextColor(); ColorStateList colorStateList = new ColorStateList( new int[][] { new int[] { android.R.attr.state_pressed }, new int[] { android.R.attr.state_focused }, new int[] {} }, new int[] { sourceColor, sourceColor, color }); textView.setTextColor(colorStateList); } else { textView.setTextColor(color); } } else if (root instanceof AnalogClock) { AnalogClock analogClock = (AnalogClock) root; try { Field hourHandField = AnalogClock.class.getDeclaredField("mHourHand"); hourHandField.setAccessible(true); Field minuteHandField = AnalogClock.class.getDeclaredField("mMinuteHand"); minuteHandField.setAccessible(true); Field dialField = AnalogClock.class.getDeclaredField("mDial"); dialField.setAccessible(true); BitmapDrawable hourHand = (BitmapDrawable) hourHandField.get(analogClock); if (hourHand != null) { Drawable d = makeRecoloredDrawable(context, hourHand, color, withStates); d.setCallback(analogClock); hourHandField.set(analogClock, d); } BitmapDrawable minuteHand = (BitmapDrawable) minuteHandField.get(analogClock); if (minuteHand != null) { Drawable d = makeRecoloredDrawable(context, minuteHand, color, withStates); d.setCallback(analogClock); minuteHandField.set(analogClock, d); } BitmapDrawable dial = (BitmapDrawable) dialField.get(analogClock); if (dial != null) { Drawable d = makeRecoloredDrawable(context, dial, color, withStates); d.setCallback(analogClock); dialField.set(analogClock, d); } } catch (NoSuchFieldException ignored) { } catch (IllegalAccessException ignored) { } catch (ClassCastException ignored) { } // TODO: catch all exceptions? } }
From source file:com.facebook.litho.ComponentHostUtils.java
/** * Mounts a drawable into a view./*w w w. j ava2 s. c o m*/ * @param view view into which the drawable should be mounted * @param drawable drawable to be mounted * @param bounds bounds of the drawable being mounted * @param flags flags that determine whether the drawable obtains state from the view * @param nodeInfo nodeInfo associated to the drawable node */ static void mountDrawable(View view, Drawable drawable, Rect bounds, int flags, NodeInfo nodeInfo) { drawable.setVisible(view.getVisibility() == View.VISIBLE, false); drawable.setCallback(view); maybeSetDrawableState(view, drawable, flags, nodeInfo); view.invalidate(bounds); }
From source file:com.micabyte.android.app.BaseActivity.java
private static void unbindViewReferences(View view) { // set all listeners to null try {/*w ww . j av a 2s . com*/ view.setOnClickListener(null); } catch (Throwable mayHappen) { // NOOP - not supported by all views/versions } try { view.setOnCreateContextMenuListener(null); } catch (Throwable mayHappen) { // NOOP - not supported by all views/versions } try { view.setOnFocusChangeListener(null); } catch (Throwable mayHappen) { // NOOP - not supported by all views/versions } try { view.setOnKeyListener(null); } catch (Throwable mayHappen) { // NOOP - not supported by all views/versions } try { view.setOnLongClickListener(null); } catch (Throwable mayHappen) { // NOOP - not supported by all views/versions } try { view.setOnClickListener(null); } catch (Throwable mayHappen) { // NOOP - not supported by all views/versions } // set background to null Drawable d = view.getBackground(); if (d != null) { d.setCallback(null); } if (view instanceof ImageView) { final ImageView imageView = (ImageView) view; d = imageView.getDrawable(); if (d != null) { d.setCallback(null); } imageView.setImageDrawable(null); imageView.setImageBitmap(null); } if (view instanceof ImageButton) { final ImageButton imageB = (ImageButton) view; d = imageB.getDrawable(); if (d != null) { d.setCallback(null); } imageB.setImageDrawable(null); } // destroy WebView if (view instanceof WebView) { view.destroyDrawingCache(); ((WebView) view).destroy(); } }
From source file:Main.java
public static Bitmap flattenExtensionIcon(Drawable baseIcon, int color) { if (baseIcon == null) { return null; }//w w w . ja v a 2 s. co m Bitmap outBitmap = Bitmap.createBitmap(EXTENSION_ICON_SIZE, EXTENSION_ICON_SIZE, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(outBitmap); baseIcon.setBounds(0, 0, EXTENSION_ICON_SIZE, EXTENSION_ICON_SIZE); baseIcon.setColorFilter(color, PorterDuff.Mode.SRC_IN); baseIcon.draw(canvas); baseIcon.setColorFilter(null); baseIcon.setCallback(null); // free up any references return outBitmap; }
From source file:Main.java
private static Drawable recolor(Resources res, Drawable drawable, int color) { if (drawable == null) { return null; }/*from ww w .java 2s . c o m*/ Bitmap outBitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(outBitmap); drawable.setBounds(0, 0, outBitmap.getWidth(), outBitmap.getHeight()); drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN); drawable.draw(canvas); drawable.setColorFilter(null); drawable.setCallback(null); // free up any references return new BitmapDrawable(res, outBitmap); }