Change remoteView ImageView background

I have some remoteView with ImageViews, and I need to change the “android:background” programmatically.

I know how to change the “android:src” with:

  • TextInputLayout.setError() leaves empty space after clearing the error
  • SpannableString with Image example
  • mkdirs returns false for directory on sd card while the parent directory is writable
  • Android: How to change CheckBox size?
  • android studio new project missing folders
  • TextView to send email when clicked
  • remoteView.setImageViewResource(int viewId, int srcId);
    

    And it works fine, but how do I change the “android:background”?

    Thanks

  • How to invoke the ActionBar's ContextMenu-like behavior?
  • how to getTopActivity name or get current running application package name in lollipop?
  • Preload multiple images with Glide
  • How do I put a border around an Android textview?
  • What's the best way to do “application settings” in Android?
  • Canvas js export enable not working on android device
  • 3 Solutions collect form web for “Change remoteView ImageView background”

    You can use public void setInt (int viewId, String methodName, int value) method.

    remoteView.setInt(R.id.viewid, "setBackgroundResource", R.color.your_color)
    

    Use setBackgroundResource(int).

    Also, here is something you may take note of. When you look at Android documentation, if there is an xml element for a View that you can change, it normally points to the method to make the change at runtime.

    The jerry-rig way

    I think you could do it using the jerry-rig way doing a second layout with the new background, then you create your remoteView using this new layout, like this:

    • RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget1);
    • RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget2);

    after all, a layout isn’t so expensive.

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.