Sofia API Reference

  • Package Index
  • Class Index
  • Packages
  • sofia.app
  • sofia.content
  • sofia.data
  • sofia.graphics
    • Interfaces
    • Joint
    • PropertyTransformer
    • Classes
    • AbstractJoint
    • Anchor
    • Color
    • CoordinateSystem
    • DirectionalPad
    • DistanceJoint
    • ElasticInInterpolator
    • ElasticInOutInterpolator
    • ElasticOutInterpolator
    • FillableShape
    • FillableShape.Animator
    • Geometry
    • Image
    • LineShape
    • MotionStep
    • OvalShape
    • PointAndAnchor
    • Polygon
    • PolygonShape
    • Predicate
    • RectangleShape
    • RevoluteJoint
    • Shape
    • Shape.Animator
    • Shape.Filter
    • ShapeField
    • ShapeFilter
    • ShapeSet
    • ShapeView
    • SizeF
    • StrokedShape
    • StrokedShape.Animator
    • TextShape
    • TextShape.Animator
    • Timings
    • ViewEdges
    • ZIndexComparator
    • Enums
    • RepeatMode
    • ShapeMotion
  • sofia.util
  • sofia.view
  • sofia.widget

public class
TextShape

extends Shape

Inheritance

  • java.lang.Object
    • sofia.graphics.Shape
      • sofia.graphics.TextShape

Class Overview

A shape that renders a text string on the canvas.


Summary

Nested Classes
class TextShape.Animator<AnimatorType extends Animator<AnimatorType>> Provides animation support for shapes. 
Public Constructors
TextShape(String text, PointF origin)
Creates a TextShape with the specified text that is positioned so that the top-left corner of the area containing the text is at the specified point.
TextShape(String text, float x, float y)
Creates a TextShape with the specified text that is positioned so that the top-left corner of the area containing the text is at the specified point.
Public Methods
Animator<?> animate(long duration)

Gets an animator object that lets the user animate properties of the receiving shape.

void draw(Canvas canvas)
Subclasses must implement this method to define how the shape is to be drawn on the canvas.
float getAscent()
RectF getBounds()
Gets the bounding rectangle of the shape.
float getDescent()
String getText()
Gets the text drawn by this shape.
float getTypeSize()
Gets the point size of the text in the shape.
Typeface getTypeface()
Gets the typeface used to render the text in this shape.
void setBounds(RectF newBounds)
Updates the position of the text shape so that the text would be drawn in the center of the bounding rectangle.
void setText(String text)
Sets the text drawn by this shape.
void setTypeSize(float typeSize)
Sets the point size of the text in the shape.
void setTypeface(Typeface typeface)
Sets the typeface used to render the text in this shape.
void setTypefaceAndSize(String typefaceAndSize)

Sets the typeface and size of the text in this shape using a shorthand string to describe these properties.

Protected Methods
void createFixtures()
This method is intended for internal use only, or by advanced users subclassing one of the abstract shape types.
Paint getPaint()
Gets the Paint object that describes how this shape should be drawn.
Methods inherited from class sofia.graphics.Shape
void addFixtureForShape(org.jbox2d.collision.shapes.Shape b2Shape)
This method should only be called internally from within #createFixtures(Body) in order to create fixtures for the shape and add them to the shape's internal list of fixtures.
void addOther(Shape newShape)
Add another shape to the same view (or composite shape) containing this shape.
Animator<?> animate(long duration)

Gets an animator object that lets the user animate properties of the receiving shape.

void applyLinearImpulse(float x, float y)
TODO document
void conditionallyRepaint()
Called to indicate that the shape needs to be repainted on the screen.
boolean contains(PointF point)
Gets a value indicating whether the specified pixel location is contained in the receiver.
boolean contains(float x, float y)

Gets a value indicating whether the specified pixel location is contained in the receiver.

abstract void createFixtures()
This method is intended for internal use only, or by advanced users subclassing one of the abstract shape types.
void destroyFixtures()
Destroys the fixtures associated with this shape.
abstract void draw(Canvas canvas)
Subclasses must implement this method to define how the shape is to be drawn on the canvas.
ViewEdges extendsOutside(RectF bounds)
Determine whether any part of this shape extends outside the given rectangle.
int getAlpha()
A convenience method that gets the alpha (opacity) component of the shape's color.
float getAngularDamping()
Gets the angular damping of the shape, which is used to reduce the angular velocity of the shape.
float getAngularVelocity()
Gets the angular velocity of the shape, in degrees per second.
Body getB2Body()
For advanced usage only.
BodyDef getB2BodyDef()

For advanced usage only.

abstract RectF getBounds()
Gets the bounding rectangle of the shape.
Color getColor()
Gets the color of the receiver.
float getDensity()
Gets the density of the shape.
float getFriction()
Gets the coefficient of friction for the shape.
float getGravityScale()
Gets the gravity scaling factory for this shape.
float getHeight()
Gets the height of the shape, in pixels.
float getLeft()
Gets the x-coordinate of the anchor point of the shape's bounding box (the top-left corner, by default).
float getLinearDamping()
Gets the linear damping of the shape, which is used to reduce the linear velocity of the shape.
PointF getLinearVelocity()
Gets the linear velocity of the center of mass of the shape, in units per second.
float getMass()

Gets the mass of this shape (which is the density of the shape multiplied by its surface area).

Paint getPaint()
Gets the Paint object that describes how this shape should be drawn.
final ShapeView getParentView()
Gets the parent of the receiver.
PointF getPosition()
Gets the location of the centroid of the shape.
PointF getPositionAnchor()
Get the current position anchor, which is an offset relative to the upper left corner of the shape that is used as the shape's "origin" for the purposes of getting/setting x-y positions.
float getRestitution()
Gets the coefficient of restitution, which controls the "bounciness" of the shape (or in more precise terms, the relationship between the velocity of the shape before and after a collision).
float getRotation()
Gets the current angle of rotation of the shape, in degrees clockwise.
final ShapeField getShapeField()
Gets the ShapeField that contains this shape.
ShapeMotion getShapeMotion()
Gets a value indicating how this shape acts with regard to motion in the physical world.
float getTop()
Gets the y-coordinate of the anchor point of the shape's bounding box (the top-left corner, by default).
Matrix getTransform()
Gets the current linear transformation that will be applied to the shape when it is drawn.
float getWidth()
Gets the width of the shape, in pixels.
float getX()
Gets the x-coordinate of the centroid of the shape.
float getY()
Gets the y-coordinate of the centroid of the shape.
int getZIndex()
Gets the z-index of the receiver.
boolean intersects(Shape otherShape)
Determine whether this shape intersects another, based on their bounding boxes.
float[] inverseTransformPoint(float x, float y)
Transforms a point on the screen into the original bounds of a shape, pre-rotation.
boolean isActive()
Gets a value indicating whether or not the shape is active.
boolean isAwake()
Gets a value indicating whether or not the shape is awake.
boolean isBullet()
Gets a value indicating whether this shape is a "bullet." Bullets are very fast moving objects that require more precise contact/collision handling than ordinary objects, and they require more processing power as a result.
boolean isFixedRotation()
Gets a value indicating whether this shape's rotation is fixed -- that is, even under a physical load, the shape will never rotate.
boolean isInFrontOf(Shape other)
Returns true if this shape is drawn in front of (later than) the other shape.
boolean isSensor()
Gets a value indicating whether or not the shape is a sensor.
boolean isVisible()
Gets a value indicating whether the receiver is visible (drawn on the screen).
void moveBy(float dx, float dy)
Moves the receiver by the specified horizontal and vertical distance.
void recreateFixtures()
Destroys and recreates the shape's fixtures.
void remove()
Remove this shape from its view (or parent).
void rotateBy(float angleDelta)
Increments the shape's rotation by the specified number of degrees, around the same pivot point that was used previously (or the center of the shape if no other pivot has been previously used).
void setActive(boolean isActive)
Sets a value indicating whether or not the shape is active.
void setAlpha(int newAlpha)
A convenience method that sets the alpha (opacity) component of the shape's color without changing the other color components.
void setAngularDamping(float newDamping)
Sets the angular damping of the shape, which is used to reduce the angular velocity of the shape.
void setAngularVelocity(float newVelocity)
Sets the angular velocity of the shape, in degrees per second.
abstract void setBounds(RectF newBounds)
Sets the bounding rectangle of the shape.
void setBullet(boolean bullet)
Sets a value indicating whether this shape is a "bullet." Bullets are very fast moving objects that require more precise contact/collision handling than ordinary objects, and they require more processing power as a result.
void setColor(Color newColor)
Sets the color of the receiver.
void setDensity(float newDensity)
Sets the density of the shape.
void setFixedRotation(boolean fixedRotation)
Sets a value indicating whether this shape's rotation is fixed -- that is, even under a physical load, the shape will never rotate.
void setFriction(float newFriction)
Set the coefficient of friction for the shape.
void setGravityScale(float gravityScale)
Sets the gravity scaling factor for the shape.
void setLeft(float x)
Sets the x-coordinate of the anchor point of the shape's bounding box (the top-left corner, by default).
void setLinearDamping(float newDamping)
Sets the linear damping of the shape, which is used to reduce the linear velocity of the shape.
void setLinearVelocity(PointF newVelocity)
Sets the linear velocity of the center of mass of the shape, in units per second.
void setLinearVelocity(float xVelocity, float yVelocity)
Sets the linear velocity of the center of mass of the shape, in units per second.
void setPosition(float x, float y)
Sets the location of the centroid of the shape.
void setPosition(PointF position)
Sets the location of the centroid of the shape.
void setPositionAnchor(PointF anchor)
Set the position anchor, which is an offset relative to the upper left corner of the shape that is used as the shape's "origin" for the purposes of getting/setting x-y positions.
void setRestitution(float newRestitution)

Sets the coefficient of restitution, which controls the "bounciness" of the shape (or in more precise terms, the relationship between the velocity of the shape before and after a collision).

void setRotation(float newRotation)
Sets the angle of rotation of the shape in degrees clockwise, using the center of the shape's bounding box as the pivot point.
void setSensor(boolean isSensor)
Gets a value indicating whether or not the shape is a sensor.
void setShapeMotion(ShapeMotion motion)
Sets a value indicating how this shape acts with regard to motion in the physical world.
void setTop(float y)
Sets the y-coordinate of the anchor point of the shape's bounding box (the top-left corner, by default).
void setVisible(boolean newVisible)
Sets a value indicating whether the receiver is visible (drawn on the screen).
void setZIndex(int newZIndex)
Sets the z-index of the receiver.
void stopAnimation()
Stops the current animation for this shape, if there is one.
String toString()
Returns a human-readable string representation of the shape.
void updateTransform(float x, float y, float angle)
TODO document
void updateTransform(float x, float y)
TODO document
void updateTransform(float angle)
TODO document
Methods inherited from class java.lang.Object
Object clone()
boolean equals(Object arg0)
void finalize()
final Class<?> getClass()
int hashCode()
final void notify()
final void notifyAll()
String toString()
final void wait()
final void wait(long arg0, int arg1)
final void wait(long arg0)

Public Constructors

public TextShape (String text, PointF origin)

Creates a TextShape with the specified text that is positioned so that the top-left corner of the area containing the text is at the specified point.

Parameters
text
the text to draw in the shape
origin
the point on the view to draw the text
public TextShape (String text, float x, float y)

Creates a TextShape with the specified text that is positioned so that the top-left corner of the area containing the text is at the specified point.

Parameters
text
the text to draw in the shape

Public Methods

public Animator<?> animate (long duration)

Gets an animator object that lets the user animate properties of the receiving shape.

For ease of use, the description of the animation desired can be chained directly to the result of this method. For example, the following code fragment would create an animation that runs for 2 seconds, gradually changing the shape's color to red, its position to the top-right corner of the view, and then starts the animation after a delay of 1 second after the method is called:

     shape.animate(2000)
          .delay(1000)
          .color(Color.red)
          .position(Anchor.TOP_RIGHT.ofView())
          .play();

Parameters
duration
The length of the animation in milliseconds.
Returns

A ShapeAnimator that lets the user animate properties of the receiving shape.

public void draw (Canvas canvas)

Subclasses must implement this method to define how the shape is to be drawn on the canvas. Users should never call this method directly; it is called as part of the repaint cycle by the ShapeView that contains the shape.

Parameters
canvas
The Canvas on which to draw the shape.
public float getAscent ()

public RectF getBounds ()

Gets the bounding rectangle of the shape. The top-left corner of the bounding rectangle is the shape's origin, and the bottom-right corner is the shape's extent.

Returns

The bounding rectangle of the shape.

public float getDescent ()

public String getText ()

Gets the text drawn by this shape.

Returns

the text drawn by this shape

public float getTypeSize ()

Gets the point size of the text in the shape.

Returns

the point size of the text in the shape

public Typeface getTypeface ()

Gets the typeface used to render the text in this shape. The typeface indicates the font family (such as "Droid Sans") and whether or not the type is bold and/or italicized.

Returns

the Typeface used to render the text in this shape

public void setBounds (RectF newBounds)

Updates the position of the text shape so that the text would be drawn in the center of the bounding rectangle.

Parameters
newBounds
the new bounds
public void setText (String text)

Sets the text drawn by this shape.

Parameters
text
the text to be drawn by this shape
public void setTypeSize (float typeSize)

Sets the point size of the text in the shape.

Parameters
typeSize
the new point size of the text in the shape
public void setTypeface (Typeface typeface)

Sets the typeface used to render the text in this shape. The typeface indicates the font family (such as "Droid Sans") and whether or not the type is bold and/or italicized.

Parameters
typeface
the Typeface used to render the text in this shape
public void setTypefaceAndSize (String typefaceAndSize)

Sets the typeface and size of the text in this shape using a shorthand string to describe these properties.

The string passed to this method should be in the format "typeface-style-size", where:

  • typeface is the name of the typeface (such as "DroidSans")
  • style is one of the following: plain or normal for normal text, bold for bold text, italic for italicized text, or bolditalic for both bold and italicized text
  • size is the size of the text, in points

Any of the three parts of this string can be replaced with a "*" wildcard, which means retain its original value while changing the others.

Parameters
typefaceAndSize
a string describing the typeface and text size

Protected Methods

protected void createFixtures ()

This method is intended for internal use only, or by advanced users subclassing one of the abstract shape types. Subclasses must override this method to create the necessary fixtures for the body that this shape represents. Use the getB2Body() method to access the body when creating fixtures.

protected Paint getPaint ()

Gets the Paint object that describes how this shape should be drawn. By default, the Paint's style is set to STROKE and the color to the value returned by getColor(). Subclasses can override this method to add their own attributes; they should call the superclass implementation and then add their own styles to the returned object.

Returns

A Paint object describing how the shape should be drawn.