android高亮,android代码高亮
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"+"createdintheJavasourcecodeusingHTML."));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;publicclassTextViewLinkActivityextendsActivity{TextViewmTextView=null;SpannableStringmsp=null;/**Calledwhentheactivityisfirstcreated.*/@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:webmaster@google.com"),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());}}
专注于为中小企业提供成都网站设计、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业凤台免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
Android自定义View 词组高亮控件
[站外图片上传中...(image-c5536e-1527260878515)]
继承自 View 实现,文本都是使用画布画上去。使用两支画笔表示默认文本和高亮文本。
View 的测量模式有3种:
首先是 onMeasure 里根据测量值和测量模式获取实际需要绘制的宽高
高度的测量比宽度多了 UNSPECIFIED 模式下,自己测量了View需要的高度
使用 Pain.measureText 测量画笔绘制文本将要的宽度,然后与空间的宽度比较判断是否需要换行,换行就增加 y 方向的坐标值。
Repo
android 富文本编辑器+webview 显示 高亮
UEditor编译器支持代码高亮显示,设置方法如下:
1.页面head引入UEditor类包文件shCore.js、shCoreDefault.css代码
(注:引入文件路径根据需求变更即可)
2.新增js代码
刷新页面,就可以看到页面代码高亮显示。
android 页面高亮 是什么意思
腾讯数码讯(Jonathan)随着3G网络以及大屏幕智能便携式设备的普及,人们现在都会使用手机版浏览器来上网查询简单的信息,因此手机浏览器的性能和人性化设计都显得非常重要。来自挪威的厂商Opera一直在浏览器领域拥有分非常好的口碑,不论是PC版、手机版还是为平板电脑推出的浏览器软件都有不少忠实用户,其最大的特点是打开网页速度快、程序精巧、操作流畅,而Opera Mini浏览器早在2G时代就出现在很多非智能手机中,随后也推出了Java、Symbian、Android和iOS等不同的版本,目前也是最流行的手机浏览器之一。不过与其他国外软件厂商不同的是,Opera公司非常注重为中国用户提供本地化的服务,并且也推出了“欧朋”品牌,针对中国消费者独特的应用需求进行了优化。现在欧朋浏览器即将推出针对Android系统的7.0版本,我们也提前拿到了最新的软件,并看看相对于目前的6.5版本,其在哪些地方进行了提升。我们测试的这款软件欧朋浏览器的详细版本为7.0.31353,针对Android操作系统,其安装文件大小仅为1.28MB,在增加大量功能的同时依旧保持了非常小的容量,说明其对代码优化非常优秀。我们测试的手机为Google Nexus S(Android版本4.1.1)。虽然这款手机在硬件方面已经远远落后于最新的产品,但打开欧朋浏览器的速度还是非常快的,这主要得益于其优秀的代码优化。欧朋7.0浏览器的主界面与之前6.5完全相同,依旧是由标签栏、地址栏、搜索栏、快速拨号和工具栏组成,其快速拨号栏的每一个图标都可以像iOS 以及Windows Phone 7系统那样随意进行排序与删除。此外其默认的快速拨号页面也是中国用户使用率非常高的网站或应用,可以看出其针对中国用户进行了优化。7.0版本采用了全新的欧朋首页添加方式,快速拨号布局从之前的横滑变成了竖滑动,如上图右侧的图中所示,当用户添加的网页超过了一屏幕时,其采用的是上下滑动的方式。进入默认快速拨号的第一个页面后,其会提供国内用户使用频率额最高的各大网站,并会按照网站的功能和功能来进行分类。此外,新版的欧朋浏览器也能够支持简单的手势操作功能:如向左或者向右滑动屏幕可以实现上一页及下一页的功能,不需要用户再点击相应的虚拟按键,显得更加方便实用(如上面右图所示)。在选择相关的网站后,可以看到欧朋浏览器开启网页的速度非常快,并且进行了相关的优化,实现节省流量和增加加载页面速度的效果。据欧朋公司官方的说明,7.0版浏览器在强大内核支持下,流量压缩高达90%,这样就能实现高速加载,相对于加载普通页面提速5-10倍。而在我们实际实用中,虽然不一定开启每一个网页都能提速5到10呗这么多,但明显能感到速度会变快。不过遗憾的是,欧朋浏览器在页面排版方面依旧需要改进,如上图中网页黑字下的小链接出现了这行现象,而在其它浏览器中我们并没有看到这种情况,因此这也是欧朋浏览器开发者需要解决和协调的问题。欧朋浏览器在新版本中提供了非常多的内容源,而内容源的加入也标志着未来浏览器将会向阅读软件靠拢。欧朋将这些内容源进行了详细的分类,甚至还包括不少软件下载的页面与链接,只需要通过浏览器用户就能下载游戏和程序了。在内容源中点击“下载”后,会调用欧朋浏览器的下载器功能,用户可以选择下载路径,存放在手机内存或SD卡中。与欧朋之前版本相同的是,其依旧保留了特色的“O”菜单,里面有非常多的选项。此外7.0版欧朋浏览器也提供了多标签页功能,可以由用户随意切换和关闭。欧朋7.0浏览器也提供了比较详细的设置选项,从是否载入图像、图片的质量、显示的字体、模式、是否只能换行、页面的旋转等都可以手动设置,此外欧朋7.0也提供了夜间模式功能,让用户保护视力。除了增加手势操作功能之外,欧朋7.0浏览器也保留了之前快捷键功能,用户可以根据快捷键快速实现、打开一些功能,当然如果是欧朋浏览器的老用户会非常容易上手。针对国内运营商流量资费相对较高的环境,欧朋浏览器保留了流量统计的设计,根据其官方介绍,经过代码的优化,7.0版本的浏览器流量计算会更加准确。7.0版欧朋浏览器另外一个特色功能就是整合了新浪微博,并且也将其增加到自己的内容源库里面,默认情况下在拨号页面中也提供了新浪微博的入口。只要用户登录新浪微博ID,就可以登录授权了。此外如果您希望将哪一个页面分享给好友,可以调用7.0版欧朋浏览器的分享功能,可以通过新浪微博、人人网、豆瓣、饭否、短信、邮件等方式进行分享。与PC版的浏览器相同的是,手机版的欧朋浏览器也提供了页面查找功能,如上面的作图所示,如果搜索“体育”关键词,其会在非常短的时间内迅速找到相关词汇,并采用高亮显示来提醒用户。如果您觉得哪一个网页有收藏价值,可以保存页面,存储到手机中。欧朋7.0浏览器另外一大特色功能就是在书签选项中增添了“搜狗书签”选项。如果您是搜狗浏览器的注册用户,登录搜狗ID后可以将您在搜狗浏览器中的书签同步到欧朋浏览器上。如上图所示,在点击“搜狗书签”后,会提示用户登录搜狗帐号,登录后会瞬间将书签同步到手机中,这样您就可以随时用手机浏览在PC中经常使用的网页了。这也是欧朋浏览器本地化策略一个非常好的体现,相信在其他地区不可能会提供这样的功能。当然,如果今后搜狗开始推出自己的手机浏览器产品,欧朋也许会更换合作伙伴吧。根据欧朋公司的信息,其在7.0版本做了一下改进和优化:1,采用全新的欧朋首页添加方式;2,快速拨号布局从横滑变成了竖滑动;3,增加手势划屏操作功能,如上一页和下一页;4,全新设计的网址导航;5,融合新浪微博页面;6,改进网络连接问题;7,增加搜狗书签同步;8,可支持调用第三方APP;9,高达90%的流量压缩,提升5到10倍网页加载速度;10,更准确的流量计算。可以看到,欧朋7.0版本相对于6.5版有了很多改进与优化,尤其是增加大量内容源的添加与增强SNS社交功能是最大的亮点,当然与搜狗的合作与本地内容源提供商的合作,可以看到欧朋在本地化服务方面做出的巨大努力,与Firefox、Chrome等国外厂商相比,Opera欧朋无疑走在了最前面,其在本土化的功能与内容商合作方面甚至完全不逊色于国内领先的浏览器厂商。此外,欧朋对内容源的充分支持也明确了今后浏览器的设计方向,其会与阅读类软件行程激烈的竞争,不过浏览器的优势更大:其具有阅读软件所有的功能,并且还可以打开链接与页面,这对未来阅读软件会形成很大的压力。而本土化一直是欧朋的特色,在7.0版本中其进一步巩固了这个优势,相信在持续的推广下,欧朋也会获得更多中国用户的亲睐。不过我们在使用中,还是遇到了一些不足,如对一些页面的排版相对比较混乱(如显示腾讯手机网时文字链的折行等),会影响用户体验,此外其还暂时不能直接播放优酷、土豆等网站中的视频,若要观看用户必须先下载到手机中,再开启播放器才能观看,这会非常麻烦,若未来欧朋能够让视频网站的视频直接在浏览器中进行播放,相信会给大家带来更好的用户体验。
Android 高亮展示文字
日常项目中很多时候会用到TextView的高亮展示,然而原生的TextView或多或少会有点不能满足
步骤一: 项目的 build.gradle 添加
步骤一: App的 build.gradle 添加
android怎么做代码高亮效果?EditText中所有的关键词用指定颜色显示
引入
下载代码,然后:
dependencies {
compile project(':highlight')
}
用法
对于上面效果图中的一个需要高亮的View,需要通过下面的代码
new HighLight(MainActivity.this)//
.anchor(findViewById(R.id.id_container))//
.addHighLight(R.id.id_btn_important, R.layout.info_up,
new HighLight.OnPosCallback()
{
@Override
public void getPos(float rightMargin, float bottomMargin, RectF rectF, HighLight.MarginInfo marginInfo)
{
marginInfo.leftMargin = rectF.right - rectF.width() / 2;
marginInfo.topMargin = rectF.bottom;
}
})//
anchor()指你需要在哪个view上加一层透明的蒙版,如果不设置,默认为android.R.id.content。也就是说,该库支持局部范围内去高亮某些View.
分享标题:android高亮,android代码高亮
网站网址:http://ybzwz.com/article/dsiosej.html