效果是 当字数少的时候 字体最大,随着字数的增多字体逐渐减小。
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);
}
}
}
拖动一个角增大textView面积
public class EditTextClass extends Activity implements OnTouchListener {
private EditText txt;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txt = (EditText) findViewById(YourEditTextId);
txt.setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getX() >= txt.getWidth() - 5 && event.getX() <= txt.getWidth()
event.getY() >= txt.getHeight() - 5 && event.getY() <= txt.getHeight()) {
txt.setWidth(event.getX());
txt.setHeight(event.getY());
}
return true;
}
}
ImageView伸缩动画效果
http://edison-cool911.iteye.com/blog/870339
分享到:
相关推荐
在Android开发中,有时我们需要创建一个TextView,它的字体大小能够自动调整以适应显示的文字长度,以确保文字始终完全可见,而不会超出TextView的边界。这个功能对于那些动态更新内容或者长度不固定的TextView尤其...
当我们需要在`TextView`中展示大量文字,并希望它能自动适应屏幕大小和内容长度时,就需要用到字体自适应的技术。标题“TextView的字体自适应控件的大小”描述的就是这个功能,它是通过动态调整字体大小来确保文本...
当我们需要在一个TextView中展示不同字体大小和颜色的文本时,可以借助SpannableString和相关Span类来实现。下面将详细解释如何实现这个功能。 首先,了解SpannableString。SpannableString是CharSequence的一个...
在Android开发中,有时我们需要在同一个TextView中展示不同大小的文字,并让它们保持垂直居中对齐。这可以通过使用SpannableString来实现。SpannableString是Android SDK提供的一种可操作字符串对象,允许我们在字符...
标题中的“文字自动滚动TextView(长度不够也可以)”就是指即使文字内容不足以填满整个屏幕,也能实现这种滚动效果。 `Marquee` 是`TextView` 的一个特性,它允许文本在宽度不足的情况下仍然能沿水平方向滚动。...
在某些场景下,我们可能希望TextView的字体大小能够根据其宽度自动调整,以确保文本始终能够完全显示,这就是所谓的“自适应字体大小”。标题“textview字体大小自适应宽度”以及描述“自定义textview字体大小自适应...
修改字体(font)大小(size) Android Studio 默认编辑器(Editor)的方案(Scheme)是无法... 您可能感兴趣的文章:Android编程实现自动调整TextView字体大小以适应文字长度的方法android根据分辨率自动调整字体大小的实例代
本项目是一个年前的Android应用源码示例,专为学生毕业设计学习而准备,旨在教授如何让TextView根据文本长度自动换行,以适应不同屏幕尺寸和用户需求。 在Android中,TextView默认情况下会自动换行,当一行文本无法...
在某些场景下,我们希望`TextView`能够根据文本内容的多少自动调整字体大小,以便文本能完全适应控件的宽度,避免换行或者超出视图范围。这种功能称为“字体自适应大小缩放”,它可以通过多种方法实现,以确保文字...
本文将深入探讨如何实现一个自动调整字体大小的`TextView`,以确保文字始终适应视图的宽度。 首先,我们了解问题的核心:当文本的总宽度大于`TextView`的宽度时,需要动态地减小字体大小;反之,如果文本宽度小于`...
在特定场景下,我们可能希望`TextView`中的文本能根据其内容自动调整字体大小,以便所有文字都能在给定的`TextView`区域内完全显示,而不会导致换行或者超出边界。这就是`AutoScale TextView`的概念,它是一种可以...
例如,垂直显示时,你可能需要调整TextView的宽度和高度,以适应新的布局需求。同时,可能需要处理文字的对齐方式,比如垂直居中。 5. **兼容性问题**: `android:rotation`属性是在API Level 11(Android 3.0, ...
首先,我们需要创建一个`Typeface`对象,然后将其应用到TextView上。以下是一个简单的示例: ```java Typeface systemFont = Typeface.createFromAsset(getAssets(), "fonts/Roboto-Regular.ttf"); TextView ...
在Android开发中,`AutoScaleTextView`是一种特殊类型的`TextView`,它允许文本根据视图的宽度自动调整字号,以确保所有内容都能完全显示在屏幕上,而不会出现换行或剪切。这种功能在设计适应不同屏幕尺寸和分辨率的...
`FontSpan`是Android中的一个自定义`CharacterStyle`,可以用来改变文本的一部分样式,如字体、大小、颜色等。在这里,我们将用它来设置渐变色。首先,我们需要继承`CharacterStyle`并覆写`updateDrawState...
Android 应用程序中,字体大小的调整是一个非常重要的设置,特别是在面向中老年客户的项目中,自带的字体无法满足客户需求的情况下。通常情况下, Android 应用字体大小默认随系统设置的字体大小而变化,但有时我们...
本文实例讲述了Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)。分享给大家供大家参考,具体如下: import android.content.Context; import android.graphics.Color; import android.text....
android-autofittextview, 一个 TextView,它自动调整文本大小以适应它的边界 AutoFitTextView 一个 TextView,它自动调整文本大小以适应它的边界。 用法dependencies { compile 'me.grantland:autofittextview:0.2....
在自定义的TextView中,需要定义一个refitText方法,该方法用于调整文本的字体大小,以适应TextView的大小。该方法接收两个参数:文本内容和TextView的宽度。通过循环减小字体大小,直到文本内容可以完全显示在...