code: public void setCursorTheme(final CursorTheme theme) {
  
          if (theme == mCursorTheme || theme == null) {
              //nothing to do, return
              return;
          }
          if (theme.getCursorType() != mCursorType) {
              throw new IllegalArgumentException("Cursor Theme does not match the cursor type");
          }
  
          if (mCursorAsset != null) {
              mCursorAsset.reset(this);
          }
  
          if (mCursorTheme != null) {
              mCursorTheme.unload(this);
          }
  
          mCursorTheme = theme;
          mAudioManager.loadTheme(mCursorTheme);
          theme.load(this);
          if (mCursorAsset != null) {
              mCursorAsset = mCursorTheme.getAsset(mCursorAsset.getAction());
              if (mCursorAsset == null) {
                  mCursorAsset = mCursorTheme.getAsset(Action.DEFAULT);
              }
              mCursorAsset.set(this);
          }
      }
docs: Set a {@link CursorTheme} for this cursor. Use the {@link CursorManager#getCursorThemes()}
  call to know all the available cursor themes.
  
  Make sure that the theme cursor type matches this {@link Cursor} else this call will return
  an {@link IllegalArgumentException}.
  
  @param theme the {@link CursorTheme} to be set.