添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在开发中如果我们TextView使用了wrap-content即包裹内容来定义控件的宽高时,往往我们并不能很好的掌握控件的真是宽度和高度。这里我提供了一个计算文字宽高的方法。

计算文本宽度

* 获取指定文本的宽度 * @param text * @param textSize * @return public static float getTextWidth(String text,float textSize){ if(TextUtils.isEmpty(text)){ return 0; Paint paint = new Paint();//创建一个画笔对象 paint.setTextSize(textSize);//设置画笔的文字大小 return paint.measureText(text);//利用画笔丈量指定文本的宽度

计算文本高度

/**获取指定文本的高度
  * @param text
  * @param textSize
  * @return
public static float getTextHeight(String text,float textSize){
    Paint paint = new Paint();//创建一个画笔对象
    paint.setTextSize(textSize);//设置画笔的文本大小
    Paint.FontMetrics fm = paint.getFontMetrics();//获取画笔默认字体的度量衡
    return fm.descent - fm.ascent;//返回文本自身的高度
    //return fm.bottom - fm.top + fm.leading;//返回文本所在行的行高
如何更改成自己需要的样式。
由于很多人还是问我日历自定义控件怎么修改,我觉得我的日历是很容易修改的,所以在前面特意了强调一下
由于我使用的面向对象思想写的 ,把每一天看成一个对象,所以画整个日历就变成了画一天。DayManager会自动控制去创建Day对象调用Day 的drawDays 方法,在创建的时候会把
width 单个对象的宽度
height 单个对象的高度
location_x 对象除于第几行
location_y 对象处于第几列 
public String text 日期的文本 ,即第几天
给初始化。我们可以根绝以上的信息就可以计算出画一天的的区域,然后根据自己的需要在这个区域画出自己需要的东西。即修改drawDays方法就可以。
最近笔者的朋友需要写一个关于考勤的日历,效果如下,但在网上找了半天都找不到合适的,于是乎就向笔者求助,笔者本来觉得在晚上随便找个日历demo,然后随便的修改几下就可以完成,于是顺口答应,找来几个发现代码修改起来都比较麻
BadgeView badgeView = (BadgeView) findViewById(R.id.tag_solve);
//设置显示文本
        badgeView.setBadgeText("99 ");
使用方式二:动态添加徽章控件
 //动态添加
        TextView button = findViewById(R.id.button);
        BadgeView.build(button)
                .setBadgeAnchorPosition(BadgeView.ANCHOR_LEFT_TOP)
                .setBadgeBgcolor(getResources().getCol
                                    本文罗列Android字体宽度高度的相关概念,及测量方法 。原文请参考Android_FontMetrics、Android字符串进阶之三:字体属性及测量(FontMetrics)、 Android UI 之居绘制文本内容的正确方法——实现自定义一个TextView。我们在自定义一个控件的时候,有时候会需要自己来绘制一些文本内容,...
                                    项目需要,做一个可以调整字体大小的控件,能在滑动或点击时改变选的位置,效果图如下:这是一个类似于ratingbar的控件,然而配置ratingbar的样式难以实现这样的效果,如选的图案和上面的文字对齐。因此,有必要写一个自定义view来实现。思路如下:新建一个textratingbar继承view类在ondraw()方法绘制元素:文字、横线、短竖线和圆形标记重写onmeasure()方法,控...
                                    1、getMeasuredHeight() 与 getHeight()getMeasuredHeight():获取控件实际高度,包括显示的部分和超出屏幕的部分。它的值与屏幕无关。getHeight():获取控件在屏幕显示的高度一般情况下getMeasuredWidth和getWidth方法的值是一致的。使用:(1)一般情况下,除了在onLayout方法调用getMeasuredWidth方法外...
                                    前言本文是对获取文字高度整理和总结,参考资料源自 statcoverflow的一个回答。具体参看下面的参考链接获取文字高度的三个方法paint.getTextBounds(String text, int start, int end, Rect bounds)paint.getFontMetrics()StaticLayout1 paint.getTextBounds(String text, ...
                                    我正在尝试向textview添加一个文本,我已将其宽度设置为Wrap_content.我试图获得此textview的宽度.但它在所有情况下都显示为0.在将文本设置到文本视图后,如何获得textview的宽度.代码如下:LinearLayout ll= new LinearLayout(this);ll.setOrientation(LinearLayout.VERTICAL);TextView t...
                                    上一篇讲解了自定义属性的相关操作,本篇来讲解如何测量控件。相比于前面的步骤,测量工作的复杂了许多,在这个阶段建议准备一张草稿纸记录各种思路和计算结果,这样不容易乱。下面是我在设计WaveLoadingView时的草稿。  认识MeasureSpec在正式开始写测量代码前,首先需要知道一个重要的参数,MeasureSpec。它是一个32位的整型数据,由 模式 和 长度 组成,它的结构如下。 其0 ...
                                    在漫长的开发岁月,你有没有遇到过这种问题,我们对一个布局高度设置了wrap_contant属性,但是在某个地方我们需要获取到它的一个真实的高度,那我们该怎么办呢?这里提供了一种获取某个View高度的方法。
public static float getRealHeight(View child){
    LinearLayout llayout = (LinearLayout) child...
                                    目的:自定义一个ViewGroup,里面的子view都是TextView,每个子view TextView的宽度随内容自适应且每行的子View的个数自适应,并可以自动换行一:效果图二:代码整个代码不是很多,注释都在代码,比较简单,一般都可以看懂。2.1:自定义属性目录:res/values/styles.xml2.1:WordWrapView代码public class WordWrapVie...
                                    在Android项目开发,为了更加好的去进行适配,某些时候就需要用到动态获取A控件的宽高,将A控件宽高的值动态设置给B控件,例如我在xml文件将TextView和ImageView的宽高都设置为wrap_content,接下来将动态获取TextView的宽高,然后将宽高值设置给IaageView
<ImageView
            android:id="@+id/iv_is_...
在oncreate()利用view.getWidth()或是view.getHeiht()来获取view的宽和高,看似没有问题,其实他们去得值是0,并不是你想要的结果?
这是为什么呢?
在调用oncreate()方法时,界面处于不可见状
                                    PopupWindow在创建时宽度高度设置为match_parent或者wrap_content时,通过getWidth、getHeight或者getContentView.getMeasuredWidth、getContentView.getMeasuredHeight 不能获取到真实的高度!
正确的方法获取高度的方法是创建之后调用measure方法对View进行测量,然后获取宽度高度