抱歉,具体出处忘记了
package com.test.android.textview;
import android.content.Context;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.TextView;
public class CustomTextView extends TextView {
private static float DEFAULT_MIN_TEXT_SIZE = 10;
private static float DEFAULT_MAX_TEXT_SIZE = 20;
// Attributes
private Paint testPaint;
private float minTextSize, maxTextSize;
public CustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
initialise();
}
private void initialise() {
testPaint = new Paint();
testPaint.set(this.getPaint());
// max size defaults to the intially specified text size unless it is
// too small
maxTextSize = this.getTextSize();
if (maxTextSize <= DEFAULT_MIN_TEXT_SIZE) {
maxTextSize = DEFAULT_MAX_TEXT_SIZE;
}
minTextSize = DEFAULT_MIN_TEXT_SIZE;
};
/**
* Re size the font so the specified text fits in the text box * assuming
* the text box is the specified width.
*/
private void refitText(String text, int textWidth) {
if (textWidth > 0) {
int availableWidth = textWidth - this.getPaddingLeft()
- this.getPaddingRight();
float trySize = maxTextSize;
testPaint.setTextSize(trySize);
while ((trySize > minTextSize)
&& (testPaint.measureText(text) > availableWidth)) {
trySize -= 1;
if (trySize <= minTextSize) {
trySize = minTextSize;
break;
}
testPaint.setTextSize(trySize);
}
this.setTextSize(trySize);
}
};
@Override
protected void onTextChanged(CharSequence text, int start, int before,
int after) {
super.onTextChanged(text, start, before, after);
refitText(text.toString(), this.getWidth());
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
if (w != oldw) {
refitText(this.getText().toString(), w);
}
}
}
分享到:
相关推荐
在Android开发中,有时我们需要创建一个TextView,它的字体大小能够自动调整以适应显示的文字长度,以确保文字始终完全可见,而不会超出TextView的边界。这个功能对于那些动态更新内容或者长度不固定的TextView尤其...
当我们需要在`TextView`中展示大量文字,并希望它能自动适应屏幕大小和内容长度时,就需要用到字体自适应的技术。标题“TextView的字体自适应控件的大小”描述的就是这个功能,它是通过动态调整字体大小来确保文本...
修改字体(font)大小(size) Android Studio 默认编辑器(Editor)的方案(Scheme)是无法... 您可能感兴趣的文章:Android编程实现自动调整TextView字体大小以适应文字长度的方法android根据分辨率自动调整字体大小的实例代
在某些场景下,我们可能希望TextView的字体大小能够根据其宽度自动调整,以确保文本始终能够完全显示,这就是所谓的“自适应字体大小”。标题“textview字体大小自适应宽度”以及描述“自定义textview字体大小自适应...
例如,我们想把"大字体文字"设为两倍大小: ```java int startIndex = 0; int endIndex = "大字体文字".length(); spannableText.setSpan(new RelativeSizeSpan(2f), startIndex, endIndex, Spanned.SPAN_...
RelativeSizeSpan通过指定相对于默认大小的比例来调整字体大小。 ```java ss.setSpan(new RelativeSizeSpan(1.5f), 3, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 设置"大字体"为默认大小的1.5倍 ss.setSpan(new ...
本项目是一个年前的Android应用源码示例,专为学生毕业设计学习而准备,旨在教授如何让TextView根据文本长度自动换行,以适应不同屏幕尺寸和用户需求。 在Android中,TextView默认情况下会自动换行,当一行文本无法...
在某些场景下,我们希望`TextView`能够根据文本内容的多少自动调整字体大小,以便文本能完全适应控件的宽度,避免换行或者超出视图范围。这种功能称为“字体自适应大小缩放”,它可以通过多种方法实现,以确保文字...
本文将深入探讨如何实现一个自动调整字体大小的`TextView`,以确保文字始终适应视图的宽度。 首先,我们了解问题的核心:当文本的总宽度大于`TextView`的宽度时,需要动态地减小字体大小;反之,如果文本宽度小于`...
在特定场景下,我们可能希望`TextView`中的文本能根据其内容自动调整字体大小,以便所有文字都能在给定的`TextView`区域内完全显示,而不会导致换行或者超出边界。这就是`AutoScale TextView`的概念,它是一种可以...
标题中的“文字自动滚动TextView(长度不够也可以)”就是指即使文字内容不足以填满整个屏幕,也能实现这种滚动效果。 `Marquee` 是`TextView` 的一个特性,它允许文本在宽度不足的情况下仍然能沿水平方向滚动。...
例如,垂直显示时,你可能需要调整TextView的宽度和高度,以适应新的布局需求。同时,可能需要处理文字的对齐方式,比如垂直居中。 5. **兼容性问题**: `android:rotation`属性是在API Level 11(Android 3.0, ...
"Android 如何动态调整应用字体大小详解" Android 应用程序中,字体大小的调整是一个非常重要的设置,特别是在面向中老年客户的项目中,自带的字体无法满足客户需求的情况下。通常情况下, Android 应用字体大小...
这时,需要实现文本内容自动调整字体大小,以适应TextView的大小。本文主要介绍了Android 自定义TextView实现文本内容自动调整字体大小的方法。 首先,需要创建一个自定义的TextView,继承自Android 的TextView类。...
本文实例讲述了Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)。分享给大家供大家参考,具体如下: import android.content.Context; import android.graphics.Color; import android.text....
在Android开发中,TextView是用于显示文本的基本...通过以上三种方式,开发者可以根据需求灵活地调整TextView的字体样式,提升应用的视觉效果和用户体验。理解并熟练运用这些方法,有助于打造更高质量的Android应用。
`FontSpan`是Android中的一个自定义`CharacterStyle`,可以用来改变文本的一部分样式,如字体、大小、颜色等。在这里,我们将用它来设置渐变色。首先,我们需要继承`CharacterStyle`并覆写`updateDrawState...
在Android开发中,`AutoScaleTextView`是一种特殊类型的`TextView`,它允许文本根据视图的宽度自动调整字号,以确保所有内容都能完全显示在屏幕上,而不会出现换行或剪切。这种功能在设计适应不同屏幕尺寸和分辨率的...
a simple textView have placehoder text and can auto fit text content height (一款简单的含提示文字的textView并可以自动适应文字改变自身的高度) github地址:https://github.com/wjTime/WJTextView.git