android 怎样动态设置textview字间距? 要求每行都不同 或者我应该把每一行都设

android 怎样动态设置textview字间距? 要求每行都不同 或者我应该把每一行都设,第1张

很多人说textView有一个属性android:textScaleX是调节字间距的,事实上不是。

前面有人回答过这个问题:

textview控件本身没有给间距的参数,但是可以从string.xml入手来解决:

方法1、使用 CDATA

<string name="demoStr"><Data><![CDATA[ <b>你的文字</b>]]></Data></string>

方法2、转义HTML标签

<string name="myHeadStr"><b><u>bold, underline </u></b></string>

具体你可以百度 android string html

这样的话就可以有你需要的显示效果了,在textview中是办不到的,不过这样可以解决。

@Override

public void onDraw (Canvas canvas) {

Rect targetRect = new Rect(50, 50, 1000, 200)

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG)

paint.setStrokeWidth(3)

paint.setTextSize(80)

String testString = "测试:ijkJQKA:1234"

paint.setColor(Color.CYAN)

canvas.drawRect(targetRect, paint)

paint.setColor(Color.RED)

FontMetricsInt fontMetrics = paint.getFontMetricsInt()

       // 转载请注明出处:http://blog.csdn.net/hursing

int baseline = targetRect.top + (targetRect.bottom - targetRect.top - fontMetrics.bottom + fontMetrics.top) / 2 - fontMetrics.top

// 下面这行是实现水平居中,drawText对应改为传入targetRect.centerX()

paint.setTextAlign(Paint.Align.CENTER)

canvas.drawText(testString, targetRect.centerX(), baseline, paint)

}

效果(点击查看大图):

1.如果只是静态显示textView的内容为设置的行间距,执行如下代码:

//    textview 改变字体的行间距

    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init] 

    paragraphStyle.lineSpacing = 10// 字体的行间距 

     

    NSDictionary *attributes = @{ 

                                 NSFontAttributeName:[UIFont systemFontOfSize:15], 

                                 NSParagraphStyleAttributeName:paragraphStyle 

                                 } 

    textView.attributedText = [[NSAttributedString alloc] initWithString:@"输入你的内容" attributes:attributes]

2.如果是想在输入内容的时候就按照设置的行间距进行动态改变,那就需要将上面代码放到textView的delegate方法里

-(void)textViewDidChange:(UITextView *)textView

{

    //    textview 改变字体的行间距

    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]

    paragraphStyle.lineSpacing = 20// 字体的行间距

    

    NSDictionary *attributes = @{

                                 NSFontAttributeName:[UIFont systemFontOfSize:15],

                                 NSParagraphStyleAttributeName:paragraphStyle

                                 }

    textView.attributedText = [[NSAttributedString alloc] initWithString:textView.text attributes:attributes]

 

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11563099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存