android.text.TextPaint#setTextScaleX ( )源码实例Demo

下面列出了android.text.TextPaint#setTextScaleX ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: openboard   文件: SuggestionStripLayoutHelper.java
private static float getTextScaleX(@Nullable final CharSequence text, final int maxWidth,
        final TextPaint paint) {
    paint.setTextScaleX(1.0f);
    final int width = getTextWidth(text, paint);
    if (width <= maxWidth || maxWidth <= 0) {
        return 1.0f;
    }
    return maxWidth / (float) width;
}
 
源代码2 项目: openboard   文件: SuggestionStripLayoutHelper.java
@Nullable
private static CharSequence getEllipsizedTextWithSettingScaleX(
        @Nullable final CharSequence text, final int maxWidth, @Nonnull final TextPaint paint) {
    if (text == null) {
        return null;
    }
    final float scaleX = getTextScaleX(text, maxWidth, paint);
    if (scaleX >= MIN_TEXT_XSCALE) {
        paint.setTextScaleX(scaleX);
        return text;
    }

    // <code>text</code> must be ellipsized with minimum text scale x.
    paint.setTextScaleX(MIN_TEXT_XSCALE);
    final boolean hasBoldStyle = hasStyleSpan(text, BOLD_SPAN);
    final boolean hasUnderlineStyle = hasStyleSpan(text, UNDERLINE_SPAN);
    // TextUtils.ellipsize erases any span object existed after ellipsized point.
    // We have to restore these spans afterward.
    final CharSequence ellipsizedText = TextUtils.ellipsize(
            text, paint, maxWidth, TextUtils.TruncateAt.MIDDLE);
    if (!hasBoldStyle && !hasUnderlineStyle) {
        return ellipsizedText;
    }
    final Spannable spannableText = (ellipsizedText instanceof Spannable)
            ? (Spannable)ellipsizedText : new SpannableString(ellipsizedText);
    if (hasBoldStyle) {
        addStyleSpan(spannableText, BOLD_SPAN);
    }
    if (hasUnderlineStyle) {
        addStyleSpan(spannableText, UNDERLINE_SPAN);
    }
    return spannableText;
}
 
private static float getTextScaleX(@Nullable final CharSequence text, final int maxWidth,
        final TextPaint paint) {
    paint.setTextScaleX(1.0f);
    final int width = getTextWidth(text, paint);
    if (width <= maxWidth || maxWidth <= 0) {
        return 1.0f;
    }
    return maxWidth / (float) width;
}
 
@Nullable
private static CharSequence getEllipsizedTextWithSettingScaleX(
        @Nullable final CharSequence text, final int maxWidth, @Nonnull final TextPaint paint) {
    if (text == null) {
        return null;
    }
    final float scaleX = getTextScaleX(text, maxWidth, paint);
    if (scaleX >= MIN_TEXT_XSCALE) {
        paint.setTextScaleX(scaleX);
        return text;
    }

    // <code>text</code> must be ellipsized with minimum text scale x.
    paint.setTextScaleX(MIN_TEXT_XSCALE);
    final boolean hasBoldStyle = hasStyleSpan(text, BOLD_SPAN);
    final boolean hasUnderlineStyle = hasStyleSpan(text, UNDERLINE_SPAN);
    // TextUtils.ellipsize erases any span object existed after ellipsized point.
    // We have to restore these spans afterward.
    final CharSequence ellipsizedText = TextUtils.ellipsize(
            text, paint, maxWidth, TextUtils.TruncateAt.MIDDLE);
    if (!hasBoldStyle && !hasUnderlineStyle) {
        return ellipsizedText;
    }
    final Spannable spannableText = (ellipsizedText instanceof Spannable)
            ? (Spannable)ellipsizedText : new SpannableString(ellipsizedText);
    if (hasBoldStyle) {
        addStyleSpan(spannableText, BOLD_SPAN);
    }
    if (hasUnderlineStyle) {
        addStyleSpan(spannableText, UNDERLINE_SPAN);
    }
    return spannableText;
}
 
private static float getTextScaleX(@Nullable final CharSequence text, final int maxWidth,
        final TextPaint paint) {
    paint.setTextScaleX(1.0f);
    final int width = getTextWidth(text, paint);
    if (width <= maxWidth || maxWidth <= 0) {
        return 1.0f;
    }
    return maxWidth / (float) width;
}
 
@Nullable
private static CharSequence getEllipsizedTextWithSettingScaleX(
        @Nullable final CharSequence text, final int maxWidth, @Nonnull final TextPaint paint) {
    if (text == null) {
        return null;
    }
    final float scaleX = getTextScaleX(text, maxWidth, paint);
    if (scaleX >= MIN_TEXT_XSCALE) {
        paint.setTextScaleX(scaleX);
        return text;
    }

    // <code>text</code> must be ellipsized with minimum text scale x.
    paint.setTextScaleX(MIN_TEXT_XSCALE);
    final boolean hasBoldStyle = hasStyleSpan(text, BOLD_SPAN);
    final boolean hasUnderlineStyle = hasStyleSpan(text, UNDERLINE_SPAN);
    // TextUtils.ellipsize erases any span object existed after ellipsized point.
    // We have to restore these spans afterward.
    final CharSequence ellipsizedText = TextUtils.ellipsize(
            text, paint, maxWidth, TextUtils.TruncateAt.MIDDLE);
    if (!hasBoldStyle && !hasUnderlineStyle) {
        return ellipsizedText;
    }
    final Spannable spannableText = (ellipsizedText instanceof Spannable)
            ? (Spannable)ellipsizedText : new SpannableString(ellipsizedText);
    if (hasBoldStyle) {
        addStyleSpan(spannableText, BOLD_SPAN);
    }
    if (hasUnderlineStyle) {
        addStyleSpan(spannableText, UNDERLINE_SPAN);
    }
    return spannableText;
}
 
源代码7 项目: android_9.0.0_r45   文件: ScaleXSpan.java
@Override
public void updateDrawState(TextPaint ds) {
    ds.setTextScaleX(ds.getTextScaleX() * mProportion);
}
 
源代码8 项目: android_9.0.0_r45   文件: ScaleXSpan.java
@Override
public void updateMeasureState(TextPaint ds) {
    ds.setTextScaleX(ds.getTextScaleX() * mProportion);
}
 
源代码9 项目: PowerFileExplorer   文件: ScaleXSpan.java
@Override
public void updateDrawState(TextPaint ds) {
	ds.setTextScaleX(ds.getTextScaleX() * mProportion);
}
 
源代码10 项目: PowerFileExplorer   文件: ScaleXSpan.java
@Override
public void updateMeasureState(TextPaint ds) {
	ds.setTextScaleX(ds.getTextScaleX() * mProportion);
}
 
源代码11 项目: JotaTextEditor   文件: ScaleXSpan.java
@Override
public void updateDrawState(TextPaint ds) {
	ds.setTextScaleX(ds.getTextScaleX() * mProportion);
}
 
源代码12 项目: JotaTextEditor   文件: ScaleXSpan.java
@Override
public void updateMeasureState(TextPaint ds) {
	ds.setTextScaleX(ds.getTextScaleX() * mProportion);
}
 
源代码13 项目: justified   文件: Justify.java
@Override
public void updateDrawState(final @NotNull TextPaint ds) {
  ds.setTextScaleX(ds.getTextScaleX() * mProportion);
}
 
源代码14 项目: justified   文件: Justify.java
@Override
public void updateMeasureState(final @NotNull TextPaint ds) {
  ds.setTextScaleX(ds.getTextScaleX() * mProportion);
}