您的位置:首页 > 移动开发 > Android开发

android TextView控件如何解决一个文本中出现不同大小的字体

2015-04-02 22:55 686 查看
由于公司的设计需求,导致我研究了一段时间,网上找了一下。很多人都说把它转换成html格式解析,也就是所谓的Html.fromHtml()这个方法,不过这个方法能力比较有限,android支持html并不是完全支持的,所以这个方法不是太好用。后来找了很多东西,终于找到了解决方法。



package com.Yuriko.textsize;

import android.app.Activity;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.os.Bundle;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.AbsoluteSizeSpan;
import android.view.Menu;
import android.widget.RemoteViews;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView text1;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//设置两个对象,给后面的33-35行使用,不过貌似我用不了,
		//网上一些资料上说貌似可以用,但是我没有做出来
		RemoteViews views =new RemoteViews(this.getPackageName(), R.layout.activity_main);
		AppWidgetManager appWidgetManager=AppWidgetManager.getInstance(this);
		text1=(TextView)findViewById(R.id.text1);
		//设置文本内容,当然你也可以通过下面获取控件id的方式获取文本内容
		Spannable span=new SpannableString("德玛西亚");
		//后面的toString()方法可以不加
//		Spannable span=new SpannableString(text1.getText().toString());
		//第一个参数调节字体的大小,第二个参数设置截取文字的起始点,第三个是设置截取文字的终点,第四个参数不知道
		span.setSpan(new AbsoluteSizeSpan(40), 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
		span.setSpan(new AbsoluteSizeSpan(20), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
//		views.setCharSequence(R.id.text1, "setText", span);
//		ComponentName com = new ComponentName("com.Yuriko.textsize", "com.Yuriko.textsize.MainActivity");
//		appWidgetManager.updateAppWidget(com, views); 
		text1.setText(span);
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}


至于布局文件,里面不过是一个id为text1的TextView控件而已。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: