一. 實現很簡單,就是對顏色進行線性的漸變。用到的類是LinearGradient.直接貼代碼:
public class Test extends Activity {
private TextViewTest mTextViewTest;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mTextViewTest = new TextViewTest(this);
setContentView(mTextViewTest);
}
public class TextViewTest extends TextView {
private LinearGradient mGradient;
private int[] mGradientColors = { Color.RED, Color.rgb(255, 165, 0),
Color.YELLOW, Color.GREEN, Color.rgb(0, 255, 255), Color.BLUE,
Color.rgb(160, 32, 240) };
private int mTitleWidth;
private String mTitle = "三十六天罡,七十二地煞,乃是天地正邪之氣所生,如今奉命下凡轉世為科學家.但法用以正,則可以造福人群;";
public TextViewTest(Context context) {
super(context);
// TODO Auto-generated constructor stub
setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
setWillNotDraw(false);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
measure(0, 0);
Paint paint = new Paint();
paint.setStyle(Style.FILL_AND_STROKE);
mGradient = new LinearGradient(0, 0, getWidth(),
getMeasuredHeight(), mGradientColors, null, TileMode.REPEAT);
paint.setShader(mGradient);
mTitleWidth = 0;
float[] width = new float[mTitle.length()];
paint.getTextWidths(mTitle, width);
Log.i("Tag", "Width.length= " + width.length);
int start = 0;
int offsetY = 10;
for (int j = 0; j < mTitle.length(); j++) {
mTitleWidth += (int) Math.ceil(width[j]);
if (mTitleWidth > getWidth()) {
canvas.drawText(mTitle.substring(start, j), 0, offsetY,
paint);
mTitleWidth = 0;
start = start + j;
offsetY = offsetY + getMeasuredHeight() + 5;
j--;
}
}
if (mTitleWidth > 0) {
canvas.drawText(mTitle.substring(start), 0, offsetY, paint);
}
}
}
}
二. 實例圖
- 大小: 3.6 KB
分享到:
相关推荐
Android SpannableString实现TextView不同大小文字居中显示。
解决Android中原生TextView显示中英文特殊字符等末尾参差不齐问题
Android textview 文字中间加上图片
Android的TextView中显示图片和图像的方法
android实现TextView文字部分渐变色;LinearGradientFontSpan SpannableString
旋转TextView文字显示方向,可参考学习一下。
Android 一个TextView中设置不同字体大小和颜色
android TextView android TextView
解决 TextView 中文、英文、数字、符号 排版问题,注释很清晰,5分绝对值了,
Android TextView的图片和文字居中探索,获取TextView中图片和文字的宽度和高度,并根据TextView的宽高计算居中所需要的偏移量
Android TextView显示html的demo ,演示如何在TextView上显示html效果,包括图片,
在TextView中,如果文本很长,可能需要实现垂直滚动显示文本的效果。这里需要在XML布局文件中为TextView设置如下几个属性。 Android:scrollbars=vertical android:scrollbarStyle=X 其中X为outsideOverlay或...
可直接运行,方便直接添加到项目中 解决了android 加载Html页面只出现文字,图片加载不出来,直接显示小方块的问题
主要介绍了Android实现在TextView文字过长时省略部分或滚动显示的方法,结合实例形式分析了Android中TextView控件文字显示及滚动效果相关操作技巧,需要的朋友可以参考下
android 逐行逐字显示的textview 播放通知的字幕 逐字逐行显示。可以控制显示的次数。
最近在项目中使用textview时发现在使用Android:layout_height=”wrap_content”这个属性设置后,textview会有默认的padding,也就是fontpadding。这样就会造成textview和其他view中间的间距会比自己的设置的大。那么...
android textview 文字排版 换行
如果我们的应用需要显示时间,可能首先想到大街上LED显示的绿色的发光字体, 想到 使用时钟控件显示时间,这种效果,我们用 TextView 就可以实现。具体看博客说明:编辑文章 - 博客频道 - CSDN.NET ...
android TextView 支持CSS样式
android 设置textview中划线效果