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()

       // 转载请注明出处:ht tp:/ /blog.cs dn.n et/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、如果这个页面是固定不动的:获取屏幕整个高度-其余不要的高度

2、把“买家秀”的坐标和“立即下单”的坐标分别查找到;将高度进行相减,则可以得到两个之间的距离)

这里对第二种方式进行演示:

private void getHeight() {

//买家秀

int[] viewLocation = new int[2]

lldown.getLocationInWindow(viewLocation)

int lldownX = viewLocation[0]// x 坐标

int lldownY = viewLocation[1]// y 坐标

//下单按钮

int[] view_Location = new int[2]

addressitTeadd.getLocationInWindow(view_Location)

int addressitTeaddX = view_Location[0]// x 坐标

int addressitTeaddY = view_Location[1]// y 坐标

//买家秀到下单按钮距离

int Height=addressitTeaddY-lldownY

Log.e("yxl--height",Height+"")

int ivHeight=v_nomjxiu.getHeight()

Log.e("yxl--ivm",ivHeight+"")

//空白距离

int distance= Height-ivHeight

Log.e("yxl---distance",distance+"")

if (distance>=0){

tianWeb.setVisibility(View.VISIBLE)

LinearLayout.LayoutParams linearParams =(LinearLayout.LayoutParams) tianWeb.getLayoutParams()//取控件textView当前的布局参数

linearParams.height = distance// 控件的g

tianWeb.setLayoutParams(linearParams)//使设置好的布局参数应用到控件

} else {

tianWeb.setVisibility(View.GONE)

}

}

ps:因为图中所有的控件都放在一个Scrollview里面的,点击买家秀的时候,会回d一下回来。这里获取到 :买家秀到下单的距离-(没有买家秀时会显示的图片高度)=空白的高度;

将这个空白高度用一个webview填充,防止点击的时候,d一下。

记录自己开发中遇到的问题,大家可以忽略这个ps。

动态获取控件x和y轴

@BindView(R.id.ll_down)

LinearLayout lldown

//放在方法中,lldown为控件名

int[] viewLocation = new int[2]

lldown.getLocationInWindow(viewLocation)

int lldownX = viewLocation[0]// x 坐标

int lldownY = viewLocation[1]// y 坐标

登录后复制

补充

ps:1、Android中如何获取屏幕宽度和高

int screenWidth

int screenHeight

WindowManager windowManager = getWindowManager()

Display display = windowManager.getDefaultDisplay()

screenWidth = display.getWidth()

screenHeight = display.getHeight()

登录后复制

2、获取某控件的高度getHeight()、宽度getWidth()。

android之View坐标系,获取坐标值,改变控件的位置

3、Android 动态设置控件宽高度


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

原文地址:https://54852.com/bake/11927695.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存