androidtextview样式
① android的TextView怎么做高亮闪烁效果
要给TextView加上效果,方式主要有几种:第一种,自动应用效果,使用android:autolink属性,如:java代码android:id="@+id/text1"android:layout_width="match_parent"android:layout_height="match_parent"android:autoLink="all"android:text="@string/link_text_auto"/>第二种,在文本中使用标签,如:Java代码text2:Thisissomeothertext,withalinkspecifiedviaantag.Usea\"tel:\"URLtodialaphonenumber第三种,和第二种其实是一样的,只不过将文本改在JAVA代码中,如:Java代码TextViewt3=(TextView)findViewById(R.id.text3);t3.setText(Html.fromHtml("text3:Textwitha"+"link"+"."));t3.setMovementMethod(LinkMovementMethod.getInstance());第四种,前面三种可以说都是自动的,而第四种就是纯“手工”的了。通过创建SpanableString字符串,并在之上创建一个或多个Span来实现丰富的效果。例子如下:Java代码SpannableStringss=newSpannableString("text4:Clickheretodialthephone.");ss.setSpan(newStyleSpan(Typeface.BOLD),0,6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);ss.setSpan(newURLSpan("tel:4155551212"),13,17,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);TextViewt4=(TextView)findViewById(R.id.text4);t4.setText(ss);t4.setMovementMethod(LinkMovementMethod.getInstance());完整的代码见ApiDemo吧,下面我提几点需要注意的:.setMovementMethod,此方法在需要响应用户事件时使用,如点击一个电话号码就跳转到拨号页面。如果不执行这个方法是不会响应事件的,即便文本看着已经是下划线蓝色字了。.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE,这是在setSpan时需要指定的flag,它的意义我试了很久也没试出来,睡个觉,今天早上才突然有点想法,试之,果然。它是用来标识在Span范围内的文本前后输入新的字符时是否把它们也应用这个效果。分别有Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)、Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面包括,后面不包括)、Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括,后面包括)、Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都包括)在Android中,TextView是我们最常用的用来显示文本的控件。一般情况下,TextView中的文本都是一个样式。那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下。res-layout-main.xml:Java代码android:layout_height="wrap_content"android:layout_width="wrap_content"android:orientation="horizontal">android:id="@+id/myTextView"android:layout_width="fill_parent"android:layout_height="wrap_content"/>res-color-color.xmlres-color-linkcolor.xml:Java代码android:color="#ffffff00"/>android:color="#ff00ffff"/>TextViewLinkActivity:Java代码importjava.io.IOException;importorg.xmlpull.v1.XmlPullParserException;importandroid.app.Activity;importandroid.content.res.ColorStateList;importandroid.content.res.XmlResourceParser;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.graphics.Color;importandroid.graphics.drawable.Drawable;importandroid.os.Bundle;importandroid.text.SpannableString;importandroid.text.Spanned;importandroid.text.method.LinkMovementMethod;importandroid.text.style.AbsoluteSizeSpan;importandroid.text.style.BackgroundColorSpan;importandroid.text.style.BulletSpan;importandroid.text.style.DrawableMarginSpan;importandroid.text.style.ForegroundColorSpan;importandroid.text.style.IconMarginSpan;importandroid.text.style.ImageSpan;importandroid.text.style.RelativeSizeSpan;importandroid.text.style.ScaleXSpan;importandroid.text.style.StrikethroughSpan;importandroid.text.style.StyleSpan;importandroid.text.style.SubscriptSpan;importandroid.text.style.SuperscriptSpan;importandroid.text.style.TextAppearanceSpan;importandroid.text.style.TypefaceSpan;importandroid.text.style.URLSpan;importandroid.text.style.UnderlineSpan;importandroid.widget.TextView;{TextViewmTextView=null;SpannableStringmsp=null;/**.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);mTextView=(TextView)findViewById(R.id.myTextView);//创建一个SpannableString对象msp=newSpannableString("字体测试字体大小一半两倍前景色背景色正常粗体斜体粗斜体下划线删除线x1x2电话邮件网站短信彩信地图X轴综合/bot");//设置字体(default,default-bold,monospace,serif,sans-serif)msp.setSpan(newTypefaceSpan("monospace"),0,2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);msp.setSpan(newTypefaceSpan("serif"),2,4,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置字体大小(绝对值,单位:像素)msp.setSpan(newAbsoluteSizeSpan(20),4,6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);msp.setSpan(newAbsoluteSizeSpan(20,true),6,8,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//第二个参数booleandip,如果为true,表示前面的字体大小单位为dip,否则为像素,同上。//设置字体大小(相对值,单位:像素)参数表示为默认字体大小的多少倍msp.setSpan(newRelativeSizeSpan(0.5f),8,10,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//0.5f表示默认字体大小的一半msp.setSpan(newRelativeSizeSpan(2.0f),10,12,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//2.0f表示默认字体大小的两倍//设置字体前景色msp.setSpan(newForegroundColorSpan(Color.MAGENTA),12,15,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置前景色为洋红色//设置字体背景色msp.setSpan(newBackgroundColorSpan(Color.CYAN),15,18,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置背景色为青色//设置字体样式正常,粗体,斜体,粗斜体msp.setSpan(newStyleSpan(android.graphics.Typeface.NORMAL),18,20,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//正常msp.setSpan(newStyleSpan(android.graphics.Typeface.BOLD),20,22,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//粗体msp.setSpan(newStyleSpan(android.graphics.Typeface.ITALIC),22,24,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//斜体msp.setSpan(newStyleSpan(android.graphics.Typeface.BOLD_ITALIC),24,27,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//粗斜体//设置下划线msp.setSpan(newUnderlineSpan(),27,30,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置删除线msp.setSpan(newStrikethroughSpan(),30,33,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置上下标msp.setSpan(newSubscriptSpan(),34,35,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//下标msp.setSpan(newSuperscriptSpan(),36,37,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//上标//超级链接(需要添加setMovementMethod方法附加响应)msp.setSpan(newURLSpan("tel:4155551212"),37,39,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//电话msp.setSpan(newURLSpan("mailto:[email protected]"),39,41,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//邮件msp.setSpan(newURLSpan(""),41,43,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//网络msp.setSpan(newURLSpan("sms:4155551212"),43,45,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//短信使用sms:或者smsto:msp.setSpan(newURLSpan("mms:4155551212"),45,47,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//彩信使用mms:或者mmsto:msp.setSpan(newURLSpan("geo:38.899533,-77.036476"),47,49,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//地图//设置字体大小(相对值,单位:像素)参数表示为默认字体宽度的多少倍msp.setSpan(newScaleXSpan(2.0f),49,51,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变//设置字体(依次包括字体名称,字体大小,字体样式,字体颜色,链接颜色)ColorStateListcsllink=null;ColorStateListcsl=null;XmlResourceParserxppcolor=getResources().getXml(R.color.color);try{csl=ColorStateList.createFromXml(getResources(),xppcolor);}catch(XmlPullParserExceptione){//TODO:handleexceptione.printStackTrace();}catch(IOExceptione){//TODO:handleexceptione.printStackTrace();}XmlResourceParserxpplinkcolor=getResources().getXml(R.color.linkcolor);try{csllink=ColorStateList.createFromXml(getResources(),xpplinkcolor);}catch(XmlPullParserExceptione){//TODO:handleexceptione.printStackTrace();}catch(IOExceptione){//TODO:handleexceptione.printStackTrace();}msp.setSpan(newTextAppearanceSpan("monospace",android.graphics.Typeface.BOLD_ITALIC,30,csl,csllink),51,53,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置项目符号msp.setSpan(newBulletSpan(android.text.style.BulletSpan.STANDARD_GAP_WIDTH,Color.GREEN),0,msp.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//第一个参数表示项目符号占用的宽度,第二个参数为项目符号的颜色//设置图片Drawabledrawable=getResources().getDrawable(R.drawable.icon);drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());msp.setSpan(newImageSpan(drawable),53,57,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);mTextView.setText(msp);mTextView.setMovementMethod(LinkMovementMethod.getInstance());}}
② android编程的xml中TextView的style="@style/text",这是什么样式啊
这是 风格样式 在 res/values底下,text 样式名,文本的样式(可以是字体大小,字型,字体颜色等继续操作)
③ textview可以设置字体吗
可以.
1、设置TextView中文本的样式(如:颜色、斜体等),可以针对不同位置的文本设置不同的样式
(如:将索引范围在1-3的字符设置为黑色,2-6的字符设置为粗体等)
myFirstTextView = (TextView)findViewById(R.id.myFirstTextView);
myFirstTextView.setText("这是我的第一个TextView,嘿嘿",BufferType.EDITABLE);
/**
* 要设置文本的背景色,
* 必须将文本设置成BufferType.SPANNABLE,BufferType.EDITABLE
*/
Spannable sp = (Spannable) myFirstTextView.getText();
//设置红色背景
sp.setSpan(new BackgroundColorSpan(Color.RED), 3, 8,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC),
0, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //设置斜体
myFirstTextView.setText(sp);
复制代码
2、实现文本超链接
/************
* 设置超链接
* 在layout/*.xml中设置TextView属性:android:autoLink="all" 即可
* 支持:web/phone/email/map/all/none
* *******/
hyperlinkTextView = (TextView)findViewById(R.id.hyperlinkTextView);
hyperlinkTextView.setText("my blog -> http://orgcent.com");
复制代码
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/main"
android:textSize="65px"
/>
可以
可以在XML里面加一句话
android:textSize=""
或者
在
mTextView.setTextSize(size);
④ 请教大神android中如何设置textview文字样式(例如隶书)
这个图片上的应该叫少女字体,自定义字体的话,android Typeface使用TTF字体文件设置字体
你可以在程序中放入ttf字体文件,在程序中使用Typeface设置字体。
第一步,在assets目录下新建fonts目录,把ttf字体文件放到这。
第二步,程序中调用:
AssetManager mgr=getAssets();//得到AssetManager
Typeface tf=Typeface.createFromAsset(mgr, "fonts/ttf.ttf");//根据路径得到Typeface
tv.setTypeface(tf);//设置字体
⑤ 如何设置TextView里面字体的大小
TextView是Android开发中最为常用的组件之一,其主要是显示文本框,他的常用属性有很多。设置里面字体的大小,需要按照以下操作进行。
例如:android:text(显示的文字)、android:textColor(文字的颜色)、android:singleLine(是否单行显示)
android:password(是否以密码的形式显示)、android:textSize(文字的大小)。
1、设置TextView中文本的样式(如:颜色、斜体等),可以针对不同位置的文本设置不同的样式
(如:将索引范围在1-3的字符设置为黑色,2-6的字符设置为粗体等)
myFirstTextView = (TextView)findViewById(R.id.myFirstTextView);
myFirstTextView.setText("这是我的第一个TextView,嘿嘿",BufferType.EDITABLE);
/**
* 要设置文本的背景色,
* 必须将文本设置成BufferType.SPANNABLE,BufferType.EDITABLE
*/
Spannable sp = (Spannable) myFirstTextView.getText();
//设置红色背景
sp.setSpan(new BackgroundColorSpan(Color.RED), 3, 8,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC),
0, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //设置斜体
myFirstTextView.setText(sp);
复制代码
2、实现文本超链接
/************
* 设置超链接
* 在layout/*.xml中设置TextView属性:android:autoLink="all" 即可
* 支持:web/phone/email/map/all/none
* *******/
hyperlinkTextView = (TextView)findViewById(R.id.hyperlinkTextView);
hyperlinkTextView.setText("my blog -> http://orgcent.com");
复制代码
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/main"
android:textSize="65px"
/>
可以
可以在XML里面加一句话
android:textSize=""
或者
在
mTextView.setTextSize(size);
⑥ 关于Android TextView
android系统的文本视图的意思。
TextView是android里面用的最多的控件,TextView类似一般UI中的Label,TextBlock等控件,只是为了单纯的显示一行或多行文本。TextView作为android开发中最简单也最常用的控件,作为初学者,需要熟知其属性并熟练掌握。
android:cursorVisible设定光标为显示/隐藏,默认显示。
android:digits设置允许输入哪些字符。如“1234567890.+-*/% ()”
android:drawableBottom在text的下方输出一个drawable,如图片。如果指定一个颜色的话会text的背景设为该颜色,并且同时和background使用时覆盖后者。
android:drawableLeft在text的左边输出一个drawable,如图片。
android:drawablePadding设置text与drawable(图片)的间隔,与drawableLeft、 drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。
android:drawableRight在text的右边输出一个drawable。
android:drawableTop在text的正上方输出一个drawable。
android:editable设置是否可编辑。
android:editorExtras设置文本的额外的输入数据。
android:ellipsize设置当文字过长时,该控件该如何显示。有如下值设置:”start”—-省略号显示在开头;”end” ——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)
android:freezesText设置保存文本的内容以及光标的位置。
android:gravity设置文本位置,如设置成“center”,文本将居中显示。
android:hintText为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。此属性在 EditView中使用,但是这里也可以用。
android:imeOptions附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。这个在EditView中再详细说明,此处无用。
android:imeActionId设置IME动作ID。
android:imeActionLabel设置IME动作标签。
android:includeFontPadding设置文本是否包含顶部和底部额外空白,默认为true。
android:inputMethod为文本指定输入法,需要完全限定名(完整的包名)。
android:inputType设置文本的类型,用于帮助输入法显示合适的键盘类型。在EditView中再详细说明,这里无效果。
android:linksClickable设置链接是否点击连接,即使设置了autoLink。
android:marqueeRepeatLimit在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为 marquee_forever时表示无限次。
android:ems设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度
android:maxEms设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。
android:minEms设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。
android:maxLength限制显示的文本长度,超出部分不显示。
android:lines设置文本的行数,设置两行就显示两行,即使第二行没有数据。
android:maxLines设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。
android:minLines设置文本的最小行数,与lines类似。
android:lineSpacingExtra设置行间距。
android:lineSpacingMultiplier设置行间距的倍数。如”1.2”
android:numeric如果被设置,该TextView有一个数字输入法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EdtiView将详细说明。
android:password以小点”.”显示文本
android:phoneNumber设置为电话号码的输入方式。
android:privateImeOptions设置输入法选项,此处无用,在EditText将进一步讨论。
android:scrollHorizontally设置文本超出TextView的宽度的情况下,是否出现横拉条。
android:selectAllOnFocus如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。 TextView中设置后无效果。
android:shadowColor指定文本阴影的颜色,需要与shadowRadius一起使用。
android:shadowDx设置阴影横向坐标开始位置。
android:shadowDy设置阴影纵向坐标开始位置。
android:shadowRadius设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。
android:singleLine设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。
android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行
android:text设置显示文本.
android:textAppearance设置文字外观。如 “?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。可设置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse
android:textColor设置文本颜色
android:textColorHighlight被选中文字的底色,默认为蓝色
android:textColorHint设置提示信息文字的颜色,默认为灰色。与hint一起使用。
android:textColorLink文字链接的颜色.
android:textScaleX设置文字之间间隔,默认为1.0f。
android:textSize设置文字大小,推荐度量单位”sp”,如”15sp”
android:textStyle设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开
android:typeface设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2,
monospace(等宽字体) 3]
android:height设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)
android:maxHeight设置文本区域的最大高度
android:minHeight设置文本区域的最小高度
android:width设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layout_width 的区别看这里
android:maxWidth设置文本区域的最大宽度
android:minWidth设置文本区域的最小宽度
⑦ android textview显示富文本支持哪些标签
在TextView类中预定义了一些类似HTML的标签,通过这些标签,可以使TextView控件显示不同的颜色、大小、字体的文字。
<font>:设置颜色和字体
<big>:设置大号字
<small>:设置小号字
<i>:斜体
<b>:粗体
<tt>:等宽字体(Monospace)
<br>:换行(行与行之间没有空行)
<p>:换行(行与行之间的空行)
<a>:链接地址
<img>:插入图像
这些标签虽然和HTML的标签类似,但并不具备HTML标签的全部功能。如<font>标签只支持color和face两个属性。
在使用这些标签时不能将带这些标签的字符串直接赋值到TextView上,而需要使用Html.frmHtml方法将带标签的字符串转换成CharSequence对象,再赋值给TextView。
如果想在显示的文本中将URL、E-mail、电话等特殊内容高亮显示,并在单击时触发相应的动作(如单击电话会直接在拨号界面显示电话号码),可以设置<TextView>标签的android:autoLink属性,该属性可设置的属性值如下:
none:不匹配任何链接(默认) web:匹配Web网址 email:匹配E-mail地址
phone:匹配电话号码 map:匹配映射地址 all:匹配所有的链接
示例:
{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtFirst=(TextView)findViewById(R.id.txtFirst);
Stringhtml="<fontcolor='red'>样式一</font><br>";
html+="<fontcolor='#0000FF'><big><i>样式二</i></big><font>";
html+="<fontcolor='@"+android.R.color.white+"'><tt><b><big><u>样式三</u></big></b></tt></font><br>";
html+="<big><ahref='http://blog.csdn.net/a_mean'>我的博客:http://blog.csdn.net/a_mean</a></big>";
CharSequencecharSequence=Html.fromHtml(html);
txtFirst.setText(charSequence);
//该语句在设置后必加,不然没有任何效果
txtFirst.setMovementMethod(LinkMovementMethod.getInstance());
}
}
如图:
⑧ android textview中怎么设置字体格式
改变Font
Type的属性叫Typeface
默认情况下,Android只支持
sans,
serif,
monospace
三种内嵌字体.
如果要使用自定义的字体,请将字库的ttf导入资源,再引用(过程不简单,具体请谷歌)