Android TextView 去掉自适应默认的fontpadding的实现方法

Android TextView 去掉自适应默认的fontpadding的实现方法

最近在项目中使用textview时发现在使用Android:layout_height="wrap_content"这个属性设置后,textview会有默认的padding,也就是fontpadding。这样就会造成textview和其他view中间的间距会比自己的设置的大。那么我们怎么来remove掉这个间距呢?

第一、先试试设置includefontpadding=false ,如果不能达到目的的话,可以按照第二种方法。

第二、实现自定义TextView,只需继承自TextView然后重写onDraw方法就可以了。

FontMetricsInt fontMetricsInt; @Override protected void onDraw(Canvas canvas) { if (adjustTopForAscent){//设置是否remove间距,true为remove if (fontMetricsInt == null){ fontMetricsInt = new FontMetricsInt(); getPaint().getFontMetricsInt(fontMetricsInt); } canvas.translate(0, fontMetricsInt.top - fontMetricsInt.ascent); } super.onDraw(canvas); }

第二种方法一般能达到目的,如果还是不能的话,那只能使用marginTop等于负值来实现了,不过不推荐这种方法。

如有疑问请留言或者到本站社区交流讨论,感谢阅读希望能帮助到大家,谢谢大家对本站的支持!

时间: 2024-10-26 02:36:51

Android TextView 去掉自适应默认的fontpadding的实现方法的相关文章

去掉activity默认动画效果的简单方法_Android

很多手机都会自带一些Activity切换动画,项目中如果我们需要禁用掉系统Activity切换的动画,可以使用如下方法: 一.重写Activity的Them中的windowAnimationStyle相关属性,并保存在res/values/styles.xml <style name="Theme.notAnimation" parent="android:Theme.Light.NoTitleBar.Fullscreen"> <item name

去掉activity默认动画效果的简单方法

很多手机都会自带一些Activity切换动画,项目中如果我们需要禁用掉系统Activity切换的动画,可以使用如下方法: 一.重写Activity的Them中的windowAnimationStyle相关属性,并保存在res/values/styles.xml <style name="Theme.notAnimation" parent="android:Theme.Light.NoTitleBar.Fullscreen"> <item name

Android textview 实现长按自由选择复制功能的方法

这里有一个大坑,我的viewGroup中有一个这个属性android:descendantFocusability="blocksDescendants" 开始没有注意到,试了好多方法都不行,后来才看到这个属性,顺便科普一下,这个属性有三个值~ beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点 blocksDescendants:viewgroup会覆盖子类

android:TextView简单设置文本样式和超链接的方法_Android

本文实例讲述了android:TextView简单设置文本样式和超链接的方法.分享给大家供大家参考,具体如下: 设置TextView中文本的样式(如:颜色.斜体等),可以针对不同位置的文本设置不同的样式(如:将索引范围在1-3的字符设置为黑色,2-6的字符设置为粗体等) myFirstTextView = (TextView)findViewById(R.id.myFirstTextView); myFirstTextView.setText("这是我的第一个TextView,嘿嘿"

android:TextView简单设置文本样式和超链接的方法

本文实例讲述了android:TextView简单设置文本样式和超链接的方法.分享给大家供大家参考,具体如下: 设置TextView中文本的样式(如:颜色.斜体等),可以针对不同位置的文本设置不同的样式(如:将索引范围在1-3的字符设置为黑色,2-6的字符设置为粗体等) myFirstTextView = (TextView)findViewById(R.id.myFirstTextView); myFirstTextView.setText("这是我的第一个TextView,嘿嘿"

Android中Activity启动默认不显示输入法解决方法_Android

checkbox控件时导致Activity启动默认不显示输入法. 网上很多资料说要放一个空的Linearlayout,完全是在误导大众, 正确的方法如下: Android Manifest对Activity做如下设置: 复制代码 代码如下: android:windowSoftInputMode="stateHidden"

Android中Activity启动默认不显示输入法解决方法

checkbox控件时导致Activity启动默认不显示输入法. 网上很多资料说要放一个空的Linearlayout,完全是在误导大众, 正确的方法如下: Android Manifest对Activity做如下设置: 复制代码 代码如下: android:windowSoftInputMode="stateHidden"

android 中去掉窗口全屏显示的简单方法_Android

复制代码 代码如下:     //去掉窗口        requestWindowFeature(Window.FEATURE_NO_TITLE);(一定要放在setContentView(R.layout.main)的前面)        //全屏显示        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);     

android 中去掉窗口全屏显示的简单方法

复制代码 代码如下:     //去掉窗口         requestWindowFeature(Window.FEATURE_NO_TITLE);(一定要放在setContentView(R.layout.main)的前面)         //全屏显示         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);