Android Open Source - DolphinOES Ninepatch Builder






From Project

Back to project page DolphinOES.

License

The source code is released under:

Apache License

If you think the Android project DolphinOES listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*******************************************************************************
 * Copyright 2015 See AUTHORS file./*ww w.  j  a  va2  s.c o m*/
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package com.sidereal.dolphinoes.behaviors.renderer.ninepatch;

import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.NinePatch;
import com.badlogic.gdx.math.Vector2;
import com.sidereal.dolphinoes.behaviors.renderer.DrawerBuilder;

/** Builder for {@link NinepatchDrawer}. Can change size, offset and color before
 * creating an instance of {@link NinepatchDrawer}.
 * 
 * @author Claudiu Bele */
public class NinepatchBuilder extends DrawerBuilder<NinepatchDrawer>
{
  // region fields

  private int paddingLeft, paddingRight, paddingTop, paddingBottom;
  private Vector2 size;
  private Vector2 offsetPosition;
  private Vector2 scale;
  private String filepath;
  private Color color;

  // endregion fields

  // region constructors
  /** Creates a NinePatchBuilder, which will be used for building a
   * {@link NinepatchDrawer}.
   * 
   * @param filePath
   *            path to the asset in memory.
   * @param paddingLeft
   *            the padding of the area to the left that does not scale
   * @param paddingRight
   *            the padding of the area to the left that does not scale
   * @param paddingTop
   *            the padding of the area to the left that does not scale
   * @param paddingBottom
   *            the padding of the area to the left that does not scale */
  public NinepatchBuilder(String filePath, int paddingLeft, int paddingRight,
      int paddingTop, int paddingBottom)
  {

    this.filepath = filePath;
    this.paddingLeft = paddingLeft;
    this.paddingRight = paddingRight;
    this.paddingTop = paddingTop;
    this.paddingBottom = paddingBottom;
  }

  // endregion

  // region methods

  @Override
  protected NinepatchDrawer build(String name)
  {

    NinepatchDrawer drawer = new NinepatchDrawer(renderer, name, filepath,
        paddingLeft, paddingRight, paddingTop, paddingBottom);
    if (size != null)
      drawer.setSize(size.x, size.y);
    if (offsetPosition != null)
      drawer.setOffsetPosition(offsetPosition.x, offsetPosition.y);
    if (color != null)
      drawer.setColor(color);
    if(scale != null)
      drawer.setScale(scale.x, scale.y);
    return drawer;
  }

  /** Sets the padding on all 4 sides. Will not be handled if the image is null
   * or the padding on all sides is equal to the parameters for individual
   * sides
   * 
   * @param left
   *            the padding on the left side
   * @param right
   *            the padding on the right side
   * @param top
   *            the padding on the top side
   * @param bottom
   *            the padding on the bottom side */
  public NinepatchBuilder setPadding(int left, int right, int top, int bottom)
  {

    this.paddingLeft = left;
    this.paddingRight = right;
    this.paddingTop = top;
    this.paddingBottom = bottom;
    return this;
  }

  /** Sets the padding of the image after it has been built. If not set, the
   * padding will be set to the texture's width and height.
   * <p>
   * Areas set in the constructor will not be scaled.
   * 
   * @param width
   *            width of the ninepatch
   * @param height
   *            width of the height
   * @return */
  public NinepatchBuilder setSize(float width, float height)
  {

    this.size = new Vector2(width, height);
    return this;
  }

  /** Sets the offset of the texture, in relation to
   * {@link #MISSING()}
   * 
   * @param x
   * @param y
   * @return */
  public NinepatchBuilder setOffsetPosition(float x, float y)
  {

    this.offsetPosition = new Vector2(x, y);
    return this;
  }

  /** Sets the color used for tinting the nine patch when building the
   * {@link NinepatchDrawer}.
   * <p>
   * The value for the alpha channel can be used for setting the transparency.
   * 
   * @param color
   *            The color of the ninepatch
   * @return */
  public NinepatchBuilder setColor(Color color)
  {

    this.color = color;
    return this;
  }

  /** Sets the scale of the nine patch. This method internally handles using the
   * {@link NinePatch#scale(float, float)} method with parameters that match the
   * target scale, regardless of previous scale sets. The scaling is in accordance to
   * the default scale values, which are 1,1.
   * <p>
   * Example: To scale the width of an element to be 3 times the default value but you
   * want the height to be different, use <code>setScale(3,1);</code>
   * 
   * @param scaleX
   * @param scaleY
   * @return NinepatchBuilder, for the purpose of chaining
   */
  public NinepatchBuilder setScale(float scaleX, float scaleY)
  {
    if(scale != null)     scale.set(scaleX, scaleY);
    else scale = new Vector2(scaleX,scaleY);
    return this;

  }
  
  // endregion methods

}




Java Source Code List

com.sidereal.dolphinoes.architecture.AbstractEvent.java
com.sidereal.dolphinoes.architecture.DebugHandler.java
com.sidereal.dolphinoes.architecture.DolphinOES.java
com.sidereal.dolphinoes.architecture.GameBatch.java
com.sidereal.dolphinoes.architecture.GameBehavior.java
com.sidereal.dolphinoes.architecture.GameObject.java
com.sidereal.dolphinoes.architecture.GameScene.java
com.sidereal.dolphinoes.architecture.Module.java
com.sidereal.dolphinoes.architecture.core.Assets.java
com.sidereal.dolphinoes.architecture.core.Configurable.java
com.sidereal.dolphinoes.architecture.core.Debug.java
com.sidereal.dolphinoes.architecture.core.DolphinOESConfiguration.java
com.sidereal.dolphinoes.architecture.core.GameData.java
com.sidereal.dolphinoes.architecture.core.MouseMovedEvent.java
com.sidereal.dolphinoes.architecture.core.Time.java
com.sidereal.dolphinoes.architecture.core.assetload.AssetLoadHandler.java
com.sidereal.dolphinoes.architecture.core.assetload.AssetLoader.java
com.sidereal.dolphinoes.architecture.core.assetload.ClassFileHandleResolver.java
com.sidereal.dolphinoes.architecture.core.assetload.LoadingPercentage.java
com.sidereal.dolphinoes.architecture.core.input.ActionData.java
com.sidereal.dolphinoes.architecture.core.input.ActionEventWrapper.java
com.sidereal.dolphinoes.architecture.core.input.ActionEvent.java
com.sidereal.dolphinoes.architecture.core.input.Input.java
com.sidereal.dolphinoes.architecture.core.input.KeyTypedEvent.java
com.sidereal.dolphinoes.architecture.core.input.ScrollEvent.java
com.sidereal.dolphinoes.architecture.core.input.TouchData.java
com.sidereal.dolphinoes.architecture.core.input.TouchEventWrapper.java
com.sidereal.dolphinoes.architecture.core.input.TouchEvent.java
com.sidereal.dolphinoes.architecture.pos.Position.java
com.sidereal.dolphinoes.architecture.pos.Positions.java
com.sidereal.dolphinoes.backend.ConcreteGametester.java
com.sidereal.dolphinoes.backend.GameTester.java
com.sidereal.dolphinoes.backend.SceneGameTester.java
com.sidereal.dolphinoes.behaviors.audio.AudioListener.java
com.sidereal.dolphinoes.behaviors.audio.AudioPlayer.java
com.sidereal.dolphinoes.behaviors.events.EventTimer.java
com.sidereal.dolphinoes.behaviors.events.RecurringEvent.java
com.sidereal.dolphinoes.behaviors.input.Clickable.java
com.sidereal.dolphinoes.behaviors.particlesystem.ParticleEmitter.java
com.sidereal.dolphinoes.behaviors.particlesystem.ParticleHandler.java
com.sidereal.dolphinoes.behaviors.particlesystem.ParticleSpriteLayout.java
com.sidereal.dolphinoes.behaviors.particlesystem.ParticleSpriteObject.java
com.sidereal.dolphinoes.behaviors.pathfinding.PathfindingHandler.java
com.sidereal.dolphinoes.behaviors.pathfinding.PathfindingMap.java
com.sidereal.dolphinoes.behaviors.pathfinding.PathfindingNode.java
com.sidereal.dolphinoes.behaviors.pathfinding.PathfindingRoute.java
com.sidereal.dolphinoes.behaviors.renderer.DrawerBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.Drawer.java
com.sidereal.dolphinoes.behaviors.renderer.Renderer.java
com.sidereal.dolphinoes.behaviors.renderer.ninepatch.NinepatchBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.ninepatch.NinepatchDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.scml.SCMLBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.scml.SCMLDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.sprite.SpriteBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.sprite.SpriteDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.spritesequence.SpriteSequenceBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.spritesequence.SpriteSequenceDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.spritesequence.SpriteSequencePreference.java
com.sidereal.dolphinoes.behaviors.renderer.texture.TextureBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.texture.TextureDrawer.java
com.sidereal.dolphinoes.behaviors.renderer.tilemap.TileMapBuilder.java
com.sidereal.dolphinoes.behaviors.renderer.tilemap.TileMapDrawer.java
com.sidereal.dolphinoes.behaviors.triggers.Activatable.java
com.sidereal.dolphinoes.behaviors.triggers.Collider.java
com.sidereal.dolphinoes.behaviors.triggers.Hoverable.java
com.sidereal.dolphinoes.ui.MessageBubble.java
com.sidereal.dolphinoes.ui.TextBuilder.java
com.sidereal.dolphinoes.util.BooleanWrapper.java
com.sidereal.dolphinoes.util.DolphinOESException.java
com.sidereal.dolphinoes.util.FloatWrapper.java
com.sidereal.dolphinoes.util.IntWrapper.java
com.sidereal.dolphinoes.util.Utility.java