精华内容
下载资源
问答
  • 在TextView中设置超链接字体、颜色

    千次阅读 2014-04-13 12:48:41
    通过创建 SpanableString 字符串,并在之上创 建一个或多个 Span 来实现丰富的效果。例子如下:  .setMovementMethod,此方法在需要响应用户事件时使用,如点击一个电话号码就跳转到拨号页面。如果不执行这个...
    要给 TextView 加上效果,方式主要有几种:
    第一种,自动应用效果,使用 android:autolink 属性:
    <TextView
            android:id="@+id/ff_tv1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:autoLink="all"
            android:text="@string/link_text_2" />


    第二种,在文本中使用 标签:

    第三种,使用SpanableString :

    通过创建 SpanableString 字符串,并在之上创 建一个或多个 Span 来实现丰富的效果。例子如下:

      .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的具体实例操作来演示一下。

    public class SpannableActivity extends Activity {
    	private TextView tv3;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_five);
    		tv3 = (TextView) findViewById(R.id.ff_tv3);
    		SpannableString ss = new SpannableString(
    				"字体测试字体大小一半两倍前景色背景色正常粗体斜体粗斜体下划线删除线x1x2电话邮件网站短信彩信地图X轴综合/bot");
    		
    		// 设置字体大小(绝对值,单位:像素)
    		ss.setSpan(new AbsoluteSizeSpan(20), 4, 6,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    		// 第二个参数boolean dip,如果为true,表示前面的字体大小单位为dip,否则为像素,同上。
    		ss.setSpan(new AbsoluteSizeSpan(20, true), 6, 8,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    		// 设置字体大小(相对值,单位:像素) 参数表示为默认字体大小的多少倍
    		// 0.5f表示默认字体大小的一半
    		ss.setSpan(new RelativeSizeSpan(0.5f), 8, 10,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    		// 2.0f表示默认字体大小的两倍
    		ss.setSpan(new RelativeSizeSpan(2.0f), 10, 12,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    		// 设置字体前景色
    		ss.setSpan(new ForegroundColorSpan(Color.MAGENTA), 12, 15,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    		// 设置字体背景色
    		ss.setSpan(new BackgroundColorSpan(Color.CYAN), 15, 18,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    		// 设置字体样式正常,粗体,斜体,粗斜体
    		ss.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), 18, 20,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    		ss.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 20, 22,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    		ss.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 22, 24,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    		ss.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 24,
    				27, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    		// 设置下划线
    		ss.setSpan(new UnderlineSpan(), 27, 30,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    		// 设置删除线
    		ss.setSpan(new StrikethroughSpan(), 30, 33,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    		// 设置上下标
    		ss.setSpan(new SubscriptSpan(), 34, 35,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 下标
    
    		ss.setSpan(new SuperscriptSpan(), 36, 37,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 上标
    
    		// 超级链接(需要添加setMovementMethod方法附加响应)
    		ss.setSpan(new URLSpan("tel:123456789"), 37, 39,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 电话
    		ss.setSpan(new URLSpan("mailto:123@google.com"), 39, 41,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 邮件
    		ss.setSpan(new URLSpan("http://www.baidu.com"), 41, 43,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 网络
    		ss.setSpan(new URLSpan("sms:123456444"), 43, 45,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 短信 使用sms:或者smsto:
    		ss.setSpan(new URLSpan("mms:123456789"), 45, 47,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 彩信 使用mms:或者mmsto:
    		ss.setSpan(new URLSpan("geo:38.899533,-77.036476"), 47, 49,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 地图
    
    		// 设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍
    		// 2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变
    		ss.setSpan(new ScaleXSpan(2.0f), 49, 51,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
    		// 设置项目符号
    		// 第一个参数表示项目符号占用的宽度,第二个参数为项目符号的颜色
    		ss.setSpan(new BulletSpan(
    				android.text.style.BulletSpan.STANDARD_GAP_WIDTH, Color.GREEN),
    				0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
    
    		// 设置图片
    		Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);
    		drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
    				drawable.getIntrinsicHeight());
    		ss.setSpan(new ImageSpan(drawable), 53, 57,
    				Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    		tv3.setText(ss);
    		tv3.setMovementMethod(LinkMovementMethod.getInstance());
    	}
    }

      效果预览:   
    展开全文
  • html中设置字体大小的方法发布时间:2020-12-08 09:49:46来源:亿速云阅读:163作者:小新这篇文章将为大家详细讲解有关html中设置字体大小的方法,小编觉得挺实用的,因此分享给大家做参考,希望大家阅读完这篇...

    html中设置字体大小的方法

    发布时间:2020-12-08 09:49:46

    来源:亿速云

    阅读:163

    作者:小新

    这篇文章将为大家详细讲解有关html中设置字体大小的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。设置html字体大小的方法:1、【font-size】后面加px值的方式;2、使用inherit继承父元素的字体大小;3、设置固定的几个值;4、设置smaller和larger;5、设置百分比的形式。

    设置html字体大小的方法:

    1、第一种:font-size后面加px值的方式

    8ac76ed16bc77f86245452531fdc2628.png

    如图,px越大,字体也就越大

    e938cd7c09729b9e6c5f744ed8085370.png

    2、第二种:inherit,继承父元素的字体大小,比如说父元素是10px,那么子元素也是10px

    d2c15e918022afbe347e68c9ebb8a88e.png

    3、第三种:固定的几个值(默认值是medium):

    xx-small、x-small、small、medium、large、x-large、xx-large

    b2df5003c9f54ce8c7187dc98abfbe8b.png

    4、第四种:smaller和larger

    这两个是相对于父元素的大小

    b8a6cdae59732097d5f00a96495ee765.png

    5、第五种:百分比的形式

    同样也是在父元素大小的基础上,进行百分比的调节

    c980d21a88b2bec64fbf5d4035b54d71.png

    关于html中设置字体大小的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

    展开全文
  • Android中需要给TextView中的个别字设置超链接,或者...baidu和youku字段做了autolink,设置字体大小和颜色,youku并取消了下划线。private void initView() { TextView textView = (TextView) findViewById(R.id.

    Android中需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,需要用到Spannable对象。

    效果如下:
    这里写图片描述
    baidu和youku字段做了autolink,设置字体大小和颜色,youku并取消了下划线。

    private void initView() {
            TextView textView = (TextView) findViewById(R.id.tv_content);
            String content = textView.getText().toString();
            // This is a test,you can click baidu or youku.
            SpannableString ss = new SpannableString(content);
            // flag:标识在 Span 范围内的文本前后输入新的字符时是否把它们也应用这个效果
            //  Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)、
            //  Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面包括,后面不包括)、
            // Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括,后面包括)、
            // Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都包括)
            // 设置网络超链接
            ss.setSpan(new URLSpan("http://www.baidu.com"), content.indexOf("baidu"), content.indexOf(" or"), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            ss.setSpan(new URLSpan("http://www.youku.com"), content.indexOf("youku"), ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            // 设置字体颜色
            ss.setSpan(new ForegroundColorSpan(Color.parseColor("#ff0000")), content.indexOf("baidu"), content.indexOf(" or"), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            ss.setSpan(new ForegroundColorSpan(Color.parseColor("#ff00ff")), content.indexOf("youku"), ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            // 设置字体大小
            ss.setSpan(new AbsoluteSizeSpan(sp2px(this, 25)), content.indexOf("baidu"), content.indexOf(" or"), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            ss.setSpan(new AbsoluteSizeSpan(sp2px(this, 30)), content.indexOf("youku"), ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            // 取消下划线
            ss.setSpan(new MyUnderlineSpan(), content.indexOf("youku"), ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
            textView.setText(ss);
            textView.setMovementMethod(LinkMovementMethod.getInstance());
        }
    
    // 通过继承UnderlineSpan重写updateDrawState方法setUnderlineText(false)取消下划线
        class MyUnderlineSpan extends  UnderlineSpan{
    
            @Override
            public void updateDrawState(TextPaint ds) {
                ds.setUnderlineText(false);
            }
        }
    
        private int sp2px(Context context, float spValue) {
            final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
            return (int) (spValue * fontScale + 0.5f);
        }

    UnderLineSpan源码很简单,在updateDrawState设置下划线

    public class UnderlineSpan extends CharacterStyle
            implements UpdateAppearance, ParcelableSpan {
        public UnderlineSpan() {
        }
    
        public UnderlineSpan(Parcel src) {
        }
    
        public int getSpanTypeId() {
            return TextUtils.UNDERLINE_SPAN;
        }
    
        public int describeContents() {
            return 0;
        }
    
        public void writeToParcel(Parcel dest, int flags) {
        }
    
        @Override
        public void updateDrawState(TextPaint ds) {
            ds.setUnderlineText(true);
        }
    }

    因此只要继承UnderlineSpan重写下updateDrawState方法即可去掉下划线

        class MyUnderlineSpan extends  UnderlineSpan{
    
            @Override
            public void updateDrawState(TextPaint ds) {
                ds.setUnderlineText(false);
            }
        }

    ClickableSpan源码的话可看到 updateDrawState默认设置带有下划线

    public abstract class ClickableSpan extends CharacterStyle implements UpdateAppearance {
    
        /**
         * Performs the click action associated with this span.
         */
        public abstract void onClick(View widget);
    
        /**
         * Makes the text underlined and in the link color.
         */
        @Override
        public void updateDrawState(TextPaint ds) {
            ds.setColor(ds.linkColor);
            ds.setUnderlineText(true);
        }
    }

    URLSpan 源码继承于ClickableSpan 并在onClick发起一个意图调用浏览器进行网址的浏览,由于继承于ClickableSpan所以默认带下划线

    public class URLSpan extends ClickableSpan implements ParcelableSpan {
    
        private final String mURL;
    
        public URLSpan(String url) {
            mURL = url;
        }
    
        public URLSpan(Parcel src) {
            mURL = src.readString();
        }
    
        public int getSpanTypeId() {
            return TextUtils.URL_SPAN;
        }
    
        public int describeContents() {
            return 0;
        }
    
        public void writeToParcel(Parcel dest, int flags) {
            dest.writeString(mURL);
        }
    
        public String getURL() {
            return mURL;
        }
    
        @Override
        public void onClick(View widget) {
            Uri uri = Uri.parse(getURL());
            Context context = widget.getContext();
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
            context.startActivity(intent);
        }
    }

    我们想自己定义webview加载内容的话可以继承URLSpan 进行处理

    class MyURLSpan extends URLSpan {
            @Override
            public void onClick(View widget) {
                Uri uri = Uri.parse(getURL());
                // 这里拿到uri进行自己的加载操作即可
                dosomething();
            }
        }

    可以看到Spannable是个相当实用的类,想起以前用textview大小颜色或要分开做点击处理的时候,用几个textview拼凑起来就想打自己脸。。。
    还有很多属性可以设置,这里就不详细说了,我常用的就这么几个。
    讲解完毕,( ^_^ )/~~拜拜

    展开全文
  • 设置输出的图片大小: figsize = 11,9 figure, ax = plt.subplots(figsize=figsize) 画简单的折线图,同时标注线的形状、名称、粗细: A,=plt.plot(x1,y1,'-r',label='A',linewidth=5.0,ms=10) ...

    设置输出的图片大小:

     

    figsize = 11,9
    figure, ax = plt.subplots(figsize=figsize)

     

     

     

    画简单的折线图,同时标注线的形状、名称、粗细:

     

    A,=plt.plot(x1,y1,'-r',label='A',linewidth=5.0,ms=10)

     

    其中线条样式以及颜色设置可参考:https://blog.csdn.net/code_segment/article/details/79217700,个人觉得介绍非常详尽。

    线条粗细使用linewidth设置,对应线条上的marker大小设置为ms参数。因为有时候粗线条,所以对应marker大小也需要增加。

    如果想要标记marker为空心,可以在后面加上 markerfacecolor='none'

     

    设置图例以及对应属性:

     

    legend = plt.legend(handles=[A,B],prop=font1)

    图例的字体格式在prop中进行设置,赋值font1可以是一个字典,包含各个属性及其对应值,属性包括family(字体)、size(字体大小)等常用属性,更详细的解释可参考matplotlib手册中关于legend prop的解释。

     


    一种比较简单的设置为:

     

    font1 = {'family' : 'Times New Roman',
    'weight' : 'normal',
    'size'   : 23,
    }

     

    坐标轴刻度密度/间隔设置:

    ax.xaxis.set_major_locator(MultipleLocator(10))

    括号中的数字为对应的刻度间隔值,y轴对应类似。

     

    坐标轴刻度值属性设置:

     

    plt.tick_params(labelsize=23)
    labels = ax.get_xticklabels() + ax.get_yticklabels()
    [label.set_fontname('Times New Roman') for label in labels]

    其中tick_params中可设置一系列属性,包括刻度值字体大小、方向、大小,颜色等一系列属性,具体可参见手册中关于tick_params的解释。

     

    比较特殊的是,其中并没有对刻度值的字体进行设置的属性,所以我们需要使用下面两行进行设置,在最初使用plt.subplots中有得到一个返回值ax,我们使用ax.get_xticklabels()以及ax.get_yticklabels()来得到所有的刻度值,并使用set_fontname函数来设置属性。

     

    坐标轴名称以及对应字体属性设置:

     

    plt.xlabel('round',font2)
    plt.ylabel('value',font2)

    这种比较简单,第一个参数为坐标轴名称,第二个参数也是一个字典参数,和上文提及的dict font1格式相同。

     

    有时候,因为调整了坐标刻度的字体大小,影响了坐标轴label的显示。所以我们需要通过调整坐标轴边距来显示label

    plt.subplots_adjust(left = 0.15,bottom=0.128)

    下面我们给出一个比较简单的画图过程:

     

    #--coding:utf-8--
    import  matplotlib.pyplot as plt
    
    #数据设置
    x1 =[0,5000,10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 55000];
    y1=[0, 223, 488, 673, 870, 1027, 1193, 1407, 1609, 1791, 2113, 2388];
    
    x2 =[0,5000,10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 55000];
    y2=[0, 214, 445, 627, 800, 956, 1090, 1281, 1489, 1625, 1896, 2151];
    
    #设置输出的图片大小
    figsize = 11,9
    figure, ax = plt.subplots(figsize=figsize)
    
    #在同一幅图片上画两条折线
    A,=plt.plot(x1,y1,'-r',label='A',linewidth=5.0)
    B,=plt.plot(x2,y2,'b-.',label='B',linewidth=5.0)
    
    #设置图例并且设置图例的字体及大小
    font1 = {'family' : 'Times New Roman',
    'weight' : 'normal',
    'size'   : 23,
    }
    legend = plt.legend(handles=[A,B],prop=font1)
    
    #设置坐标刻度值的大小以及刻度值的字体
    plt.tick_params(labelsize=23)
    labels = ax.get_xticklabels() + ax.get_yticklabels()
    [label.set_fontname('Times New Roman') for label in labels]
    
    #设置横纵坐标的名称以及对应字体格式
    font2 = {'family' : 'Times New Roman',
    'weight' : 'normal',
    'size'   : 30,
    }
    plt.xlabel('round',font2)
    plt.ylabel('value',font2)
    
    #将文件保存至文件中并且画出图
    plt.savefig('figure.eps')
    plt.show()

     

     

     

     

     

     

     

    最终生成的图片效果如下:


     

    更多的画图代码参考也可见手册中的Examples using matplotlib.pyplot.plot,可以翻到超链接跳转页面的最下方,有很多画图的示例,点进去即为对应实现代码。可以找到适用的代码实现方式。pyplot.subplots下也有很多很好的示例!

    展开全文
  • android中用Spannable在TextView中设置超链接、颜色、字体  【转载】      要给 TextView 加上效果,方式主要有几种:  第一种,自动...
  • 通过创建 SpanableString 字符串,并在之上创 建一个或多个 Span 来实现丰富的效果。例子如下: SpannableString ss = new SpannableString( "text4: Click here to dial the phone." ) ; ss .setSpan ...
  • TextView的跑马灯效果、变量赋值、字体属性、超链接、Activity跳转、字体加粗、自定义字体 步骤一:TextView跑马灯效果: 注意事项:1、跑马灯效果必须要求TextView的内容大于TextView控件的大小
  • 在Word文档中我们经常可以看到很多超链接,其中最常见的是文本超链接,其次是图片超链接,通过点击这些超链接,我们就可以快速地从当前文档跳转到指定的网站或打开指定的外部文件,非常方便。这篇文章将介绍如何使用...
  • 那么如何对于TextView中各个部分的文本来设置字体大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下。  res-layout-main.xml [html] v
  • 通过创建 SpanableString 字符串,并在之上创 建一个或多个 Span 来实现丰富的效果。例子如下:  Java代码  SpannableString ss =  new  SpannableString( "text4: Click here to ...
  • 由于在android 中的Html源码中html标签的支持不是很完全,在使用textview加载html自定义字体样式的时候遇到坑了,就是font标签不支持size属性,查看源码中发现没有去解析size属性// Html源码部分 private static ...
  • 通过创建 SpanableString 字符串,并在之上创 建一个或多个 Span 来实现丰富的效果。例子如下:  Java代码    SpannableString ss = new SpannableString( "text4: Click ...
  • 设置超链接样式

    千次阅读 2014-11-23 17:10:00
    因为下划线效果能很好的提示访问者当前鼠标经过的文字是一个超链接。超链接的下划线效果不仅仅是一条实线,也可以根据需要定制。定制主要思路如下: 借助超链接元素a的底部边框线来实现 利用背景图像来实现...
  • 那么如何对于TextView中各个部分的文本来设置字体大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下。  res-layout-main.xml [html] v
  • 最近做了一些导出excel的需求: 例如一些设置背景色,设置字体,边框,添加超链接,合并单元格。 1.设置背景色 headStyle.setFillForegroundColor(IndexedColors.LIME.getIndex());...//设置字体大小 redFont
  • 还是之前的老项目问题,应法务部门的要求要将之前客户端的相关条款调整一下,每条内容中还有多个条款可方便用户进行点击查看详细内容,本来没啥问题,当去寻找内容所在的时候却发现都是在本地配置的,并且是xml写死...
  • 前段时间做项目需要实现在文本类控件中加入超链接文字段的功能,在网上查了不少资料...变色文字的格局(间距、字体大小、换行)必须与原来一致。(注意做出改变的是部分文字,非整个文本)效果图如下: 图1 图2
  • 通过创建 SpanableString 字符串,并在之上创 建一个或多个 Span 来实现丰富的效果。例子如下:  Java代码  SpannableString ss =  new  SpannableString( "text4: Click here to dial the phone." ); ...
  • 2,为一段文字中某些字单独设置字体大小 3,设置字体 二,通过Span 相关知识 前言 有时候一TextView显示很文字,所有文字颜色,字体,大小不统一;这时候就需要单独设置某些字; 一,通过Html实现 1,...
  • 最近一个项目有个需求,文本的颜色和大小不一样,虽然可以用多个TextView来实现这样效果,但是在写布局时就会很麻烦,所以总结了一点安卓这方面的资料。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,339
精华内容 7,735
关键字:

对多个超链接设置字体大小