com.supermap.mapping
类 MixedTextStyle

java.lang.Object
  继承者 com.supermap.mapping.MixedTextStyle

public class MixedTextStyle
extends java.lang.Object

文本复合风格类。

该类主要用于对标签专题图中标签的文本内容进行风格设置。通过该类用户可以使标签的文字显示不同的风格,比如文本 “喜马拉雅山”,通过本类可以将前三个字用红色显示,后两个字用蓝色显示。

对同一文本设置不同的风格实质上是对文本的字符进行分段,同一分段内的字符具有相同的显示风格。对字符分段有两种方式,一种是利用分隔符对文本进行分段;另一种是根据分段索引值进行分段。

  1. 利用分隔符对文本进行分段
  2. 比如用“&”作分隔符,它将文本“5&109”分为“5”和“109”两部分,在显示时,“5”和分隔符“&”使用同一个风格,字符串“109”使用相同的风格。
  3. 利用分段索引值进行分段
  4. 文本中字符的索引值是以0开始的整数,比如文本“珠穆朗玛峰”,第一个字符(“珠”)的索引值为0,第二个字符(“穆”)的索引值为1,以此类推;当设置分段索引值为1,3,4,9时,字符分段范围相应的就是(-∞,1),[1,3),[3,4),[4,9),[9,+∞),可以看出索引号为0的字符(即“珠” )在第一个分段内,索引号为1,2的字符(即“穆”、“朗”)位于第二个分段内,索引号为3的字符(“玛”)在第三个分段内,索引号为4的字符(“峰”)在第四个分段内,其余分段中没有字符。

示例:
以下代码示范了对标签专题图中标签的文本内容进行风格设置,并将专题图添加到图层。打开名为World的数据源,得到给定 Capital 名称的数据集 datasetVector。
  public void mixedTextStyleTest(DatasetVector datasetVector)
 {
        // 实例化一个标签专题图对象
        ThemeLabel theme = new ThemeLabel();

        // 根据指定的文本风格和分隔符构造一个文本复合风格对象
        TextStyle textStyle1 = new TextStyle();
        textStyle1.setFontName("SM1");
        textStyle1.setForeColor(java.awt.Color.BLUE);
        textStyle1.setShadow(true);
        TextStyle textStyle2 = new TextStyle();
        textStyle1.setFontName("SM2");
        textStyle2.setUnderline(true);
        textStyle2.setWeight(5);
        TextStyle[] styles = new TextStyle[] {textStyle1, textStyle2};
        String separator = "&";
        MixedTextStyle target = new MixedTextStyle(styles, separator);
        target.setSeparatorEnabled(true);

        // 设置标签专题图统一的文本复合风格
        theme.setUniformMixedSytle(target);
        theme.setLabelExpression("Capital");

        // 将专题图添加到专题图层
        MapControl mapControl = new MapControl();
        mapControl.getMap().setWorkspace(workspace);
        Layer layertheme = mapControl.getMap().getLayers().add(datasetVector, theme, true);

        // 释放资源
        mapControl.dispose();
    }
 

构造方法摘要
MixedTextStyle()
          默认构造函数,构造一个新的 MixedTextStyle 对象。
MixedTextStyle(TextStyle[] styles, int[] splitIndexes)
          根据指定的文本风格和分段索引值构造一个与其完全相同的新的文本复合风格对象。
MixedTextStyle(TextStyle[] styles, java.lang.String separator)
          根据指定的文本风格和分隔符构造一个与其完全相同的新的文本复合风格对象。
 
方法摘要
 void dispose()
          释放该对象所占用的资源。
 TextStyle getDefaultStyle()
          返回缺省时的风格。
 java.lang.String getSeparator()
          返回文本的分隔符,分隔符的风格采用默认风格,并且分隔符只能设置一个字符。
 int[] getSplitIndexes()
          返回分段索引值,分段索引值用来对文本中的字符进行分段。
 TextStyle[] getStyles()
          返回文本样式集合。
 boolean isSeparatorEnabled()
          返回文本的分隔符是否有效。
 void setDefaultStyle(TextStyle style)
          设置缺省时的风格。
 void setSeparator(java.lang.String value)
          设置文本的分隔符,分隔符的风格采用默认风格,并且分隔符只能设置一个字符。
 void setSeparatorEnabled(boolean value)
          设置文本的分隔符是否有效。
 void setSplitIndexes(int[] value)
          设置分段索引值,分段索引值用来对文本中的字符进行分段。
 void setStyles(TextStyle[] textStyle)
          设置文本样式集合。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

MixedTextStyle

public MixedTextStyle()
默认构造函数,构造一个新的 MixedTextStyle 对象。


MixedTextStyle

public MixedTextStyle(TextStyle[] styles,
                      java.lang.String separator)
根据指定的文本风格和分隔符构造一个与其完全相同的新的文本复合风格对象。

参数:
styles - 指定的文本风格。
separator - 指定的分隔符。

MixedTextStyle

public MixedTextStyle(TextStyle[] styles,
                      int[] splitIndexes)
根据指定的文本风格和分段索引值构造一个与其完全相同的新的文本复合风格对象。

参数:
styles - 指定的文本风格。
splitIndexes - 指定的分段索引值。
方法详细信息

getDefaultStyle

public TextStyle getDefaultStyle()
返回缺省时的风格。

返回:
缺省时的风格。
默认值:
默认值为 {Alignment=TopLeft,BackColor=Color [A=255, R=0, G=0, B=0],BackOpaque=False,Bold=False,FontHeight=6,FontWidth=0,ForeColor=Color [A=255, R=0, G=0, B=0],IsSizeFixed=True,Italic=False,Outline=False,Rotation=0,Shadow=False,Strikeout=False,Underline=False,Weight=400}

setDefaultStyle

public void setDefaultStyle(TextStyle style)
设置缺省时的风格。

参数:
style - 指定缺省时的风格。

getSeparator

public java.lang.String getSeparator()
返回文本的分隔符,分隔符的风格采用默认风格,并且分隔符只能设置一个字符。

文本的分隔符是一个将文本分割开的符号,比如用“_”作分隔符,它将文本“5_109”分为“5”和“109”两部分,假设有风格数组:style1、style2和默认文本风格DefaultStyle。在显示时,“5”使用Style1风格显示,分隔符“_”使用默认风格(DefaultStyle),字符“1”,“0”,“9”使用Style2的风格。

返回:
文本的分隔符。
默认值:
默认值为一个空的字符串。

setSeparator

public void setSeparator(java.lang.String value)
设置文本的分隔符,分隔符的风格采用默认风格,并且分隔符只能设置一个字符。

文本的分隔符是一个将文本分割开的符号,比如用“_”作分隔符,它将文本“5_109”分为“5”和“109”两部分,假设有风格数组:style1、style2和默认文本风格DefaultStyle。在显示时,“5”使用Style1风格显示,分隔符“_”使用默认风格(DefaultStyle),字符“1”,“0”,“9”使用Style2的风格。

参数:
value - 指定文本的分隔符。

isSeparatorEnabled

public boolean isSeparatorEnabled()
返回文本的分隔符是否有效。

分隔符有效时利用分隔符对文本进行分段;无效时根据文本中字符的位置进行分段。分段后,同一分段内的字符具有相同的显示风格。

返回:
分隔符有效返回 true;否则返回 false。
默认值:
默认值为false

setSeparatorEnabled

public void setSeparatorEnabled(boolean value)
设置文本的分隔符是否有效。

分隔符有效时利用分隔符对文本进行分段;无效时根据文本中字符的位置进行分段。分段后,同一分段内的字符具有相同的显示风格。

参数:
value - 一个布尔值指定文本的分隔符是否有效。

getStyles

public TextStyle[] getStyles()
返回文本样式集合。文本样式集合中的样式用于不同分段内的字符。

返回:
文本样式集合。
默认值:
默认值为长度为 0 的 TextStyle[] 对象。

setStyles

public void setStyles(TextStyle[] textStyle)
设置文本样式集合。文本样式集合中的样式用于不同分段内的字符。

参数:
textStyle - 文本样式集合。

getSplitIndexes

public int[] getSplitIndexes()
返回分段索引值,分段索引值用来对文本中的字符进行分段。

文本中字符的索引值是以 0 开始的整数,比如文本“珠穆朗玛峰”,第一个字符(“珠”)的索引值为0,第二个字符(“穆”)的索引值为1,以此类推;当设置分段索引值为1,3,4,9时,字符分段范围相应的就是(-∞,1),[1,3),[3,4),[4,9),[9,+∞),可以看出索引号为0的字符(即“珠” )在第一个分段内,索引号为1,2的字符(即“穆”、“朗”)位于第二个分段内,索引号为3的字符(“玛”)在第三个分段内,索引号为4的字符(“峰”)在第四个分段内,其余分段中没有字符。

返回:
分段索引值。
默认值:
默认值为长度为 0 的 整型数组对象。

setSplitIndexes

public void setSplitIndexes(int[] value)
设置分段索引值,分段索引值用来对文本中的字符进行分段。

文本中字符的索引值是以 0 开始的整数,比如文本“珠穆朗玛峰”,第一个字符(“珠”)的索引值为0,第二个字符(“穆”)的索引值为1,以此类推;当设置分段索引值为1,3,4,9时,字符分段范围相应的就是(-∞,1),[1,3),[3,4),[4,9),[9,+∞),可以看出索引号为0的字符(即“珠” )在第一个分段内,索引号为1,2的字符(即“穆”、“朗”)位于第二个分段内,索引号为3的字符(“玛”)在第三个分段内,索引号为4的字符(“峰”)在第四个分段内,其余分段中没有字符。

参数:
value - 指定分段索引值。

dispose

public void dispose()
释放该对象所占用的资源。当调用该方法之后,此对象不再可用。