纯粹记录一下自己常用的方法,防止万一哪天记不清楚的时候看看,会不断更新滴。。。

EditText控件 - CSDN博客 https://blog.csdn.net/An_nAl/article/details/79564788

文字一直滚动的TextView

xml布局文件:

 <TextViewandroid:id="@+id/tv_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="10sp"android:padding="3dp"android:textColor="#29b6f6"/>

修改显示的文字:

tvText.setText("abcde");

修改显示的文字颜色:

tvText.setTextColor(Color.parseColor("#23A8e5"));tvText.setTextColor(0xFF0000FF);
//0xFF0000FF是int类型的数据,分组一下0x|FF|0000FF,0x是代表颜色整 数的标记,ff是表示透明度,0000FF表示颜色,注意:这里0xFF0000FF必须是8个的颜色表示,不接受0000FF这种6个的颜色表示。
tvText.setTextColor(Color.rgb(255, 255, 255));
tvText.setTextColor(Color.parseColor("#FFFFFF"));
//还有就是使用资源文件进行设置
tvText.setTextColor(this.getResources().getColor(R.color.blue));
//通过获得资源文件进行设置。根据不同的情况R.color.blue也可以是R.string.blue或者
//另外还可以使用系统自带的颜色类
tvText.setTextColor(android.graphics.Color.BLUE);

修改背景图片

 tvDataStatus.setBackgroundResource(R.mipmap.img);

行间距:

设置行间距,如”8dp”:

android:lineSpacingExtra

设置行间距的倍数,如”1.5″:

android:lineSpacingMultiplier

旋转45°的TextView

xml布局设置:

<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="8sp"android:rotation="45"android:textColor="#ff"android:transformPivotY="11dp"android:transformPivotX="6dp"android:text="未通过"/>

自定义TextView控件:


public class RotateTextView extends TextView {public RotateTextView(Context context) {super(context);}public RotateTextView(Context context, AttributeSet attrs) {super(context, attrs);}@Overrideprotected void onDraw(Canvas canvas) {//倾斜度45,上下左右居中canvas.rotate(45, getMeasuredWidth()/2, getMeasuredHeight()/2);super.onDraw(canvas);}}
<com.xxx.RotateTextViewandroid:layout_width="50dp"android:layout_height="50dp"android:gravity="center"android:paddingBottom="20dp"android:textColor="@color/app_white"android:textSize="12sp"android:background="@mipmap/img"android:text="未通过"/>

图片文字富文本显示:

出自:实战 | Android中文图混排时文图的居中对齐 FontMetrics以及自定义ImageSpan实现 https://mp.weixin.qq.com/s/2TTc-KucG6nH2upHqiZeOw

activity的xml布局:

<TextViewandroid:id="@+id/text_view"android:layout_centerInParent="true"android:layout_width="wrap_content"android:layout_height="wrap_content"android:lineSpacingExtra="8dp"android:textSize="19sp"/>

activity的使用:

public class MainActivity extends AppCompatActivity {private TextView textView;//自定义对齐方式--与文字中间线对齐private final int  ALIGN_FONTCENTER = 2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = (TextView) this.findViewById(R.id.text_view);// "你们好,这个 是小Android!"// 这句话的空格位序为7,图片设置为铺盖此空格的位置;// 如果不加空格,则会覆盖“是”这个字!SpannableString spannableString = new SpannableString("你们好,这个 是小Android!");//调用自定义的imageSpan,实现文字与图片的横向居中对齐CustomImageSpan imageSpan = new CustomImageSpan(this, R.mipmap.ic_launcher, ALIGN_FONTCENTER);//setSpan插入内容的时候,起始位置不替换,会替换起始位置到终止位置间的内容,含终止位置。//Spanned.SPAN_EXCLUSIVE_EXCLUSIVE模式用来控制是否同步设置新插入的内容与start/end 位置的字体样式,此处没设置具体字体,所以可以随意设置spannableString.setSpan(imageSpan, 6, 7, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);textView.setText(spannableString);}
}

自定义imageSpan实现图片与文字的居中对齐:

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.support.annotation.DrawableRes;
import android.text.style.ImageSpan;/*** 自定义imageSpan实现图片与文字的居中对齐*/
class CustomImageSpan extends ImageSpan {//自定义对齐方式--与文字中间线对齐private int ALIGN_FONTCENTER = 2;public CustomImageSpan(Context context, int resourceId) {super(context, resourceId);}public CustomImageSpan(Context context, int resourceId, int verticalAlignment) {super(context, resourceId, verticalAlignment);}@Overridepublic void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom,Paint paint) {// draw方法是重写的ImageSpan父类 DynamicDrawableSpan中的方法,在DynamicDrawableSpan类中,虽有getCachedDrawable(),// 但是私有的,不能被调用,所以调用ImageSpan中的getrawable()方法,该方法中会根据传入的drawable ID ,获取该id对应的// drawable的流对象,并最终获取drawable对象Drawable drawable = getDrawable(); //调用imageSpan中的方法获取drawable对象canvas.save();//获取画笔的文字绘制时的具体测量数据Paint.FontMetricsInt fm = paint.getFontMetricsInt();//系统原有方法,默认是Bottom模式int transY = bottom - drawable.getBounds().bottom;if (mVerticalAlignment == ALIGN_BASELINE) {transY -= fm.descent;} else if (mVerticalAlignment == ALIGN_FONTCENTER) {    //此处加入判断, 如果是自定义的居中对齐//与文字的中间线对齐(这种方式不论是否设置行间距都能保障文字的中间线和图片的中间线是对齐的)// y+ascent得到文字内容的顶部坐标,y+descent得到文字的底部坐标,(顶部坐标+底部坐标)/2=文字内容中间线坐标transY = ((y + fm.descent) + (y + fm.ascent)) / 2 - drawable.getBounds().bottom / 2;}canvas.translate(x, transY);drawable.draw(canvas);canvas.restore();}/*** 重写getSize方法,只有重写该方法后,才能保证不论是图片大于文字还是文字大于图片,都能实现中间对齐*/public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm) {Drawable d = getDrawable();Rect rect = d.getBounds();if (fm != null) {Paint.FontMetricsInt fmPaint = paint.getFontMetricsInt();int fontHeight = fmPaint.bottom - fmPaint.top;int drHeight = rect.bottom - rect.top;int top = drHeight / 2 - fontHeight / 4;int bottom = drHeight / 2 + fontHeight / 4;fm.ascent = -bottom;fm.top = -bottom;fm.bottom = top;fm.descent = top;}return rect.right;}
}

值得参考的网址:
1.TextView属性大全 - 寒星晓月 专注移动互联网 - 博客园 http://www.cnblogs.com/hxxy2003/archive/2011/08/05/2129050.html
2.TextView实战之你真的懂我么? - PleaseCallMeCoder - CSDN博客 http://blog.csdn.net/sdkfjksf/article/details/51317204这一篇讲得很全,常使用得方法都讲了
3.这篇的文字图片富文本讲解得非常棒:自定义Span - 简书 https://www.jianshu.com/p/deb28c22852a

控件:TextView相关推荐

  1. Android开发 第2课 控件TextView、Plain Text、ImageView、 Button、ImageButton以及点击事件

    控件 TextView 显示文本 Plain Text 输入文本 //将布局xml文件引入到activity当中setContentView(R.layout.activity_main);<! ...

  2. Android学习--02(猜猜我的星座App源码+Android常用控件TextView+EditText+Button+ImangeView+DatePicker+App间通信+跳转页面)

    猜猜我的星座App 1 Android常用控件 1.1 TextView控件 1.1.1 简介 1.1.2属性 1.1.3 扩展属性 1.1.4 TextView的使用方法 1.1.5总结 1.2 E ...

  3. Android歌词显示控件TextView自定义

    1. 音乐播放,音乐播放,音乐播放放入服务中,那么App 退入后台音乐也可以播放 2. 歌词显示控件TextView自定义:    使用控件TextView,  为什么不用Listview,歌词不可以 ...

  4. Android中的基础控件TextView、Button、ImageView、EditText、ProgressBar

    文章目录 1 Android中的基础控件 1.1 控件的通用属性 2 TextView 2.1 TextView的继承关系 2.2 TextView的常用属性 3 EditText 3.1 常用属性 ...

  5. Android 控件 - TextView

    1.TextView https://www.bilibili.com/video/BV13y4y1E7pF?p=3 1.1.layout_width.layout_height match_pare ...

  6. Android控件——TextView,EditText

    TextView: 显示文本控件 EditText 输入文本框 1.TextView常用属性: 2.EditText常用属性: 设置EditText的android:inputType属性可以限制文本 ...

  7. Android - 最基础的控件TextView

    TextView TextView是一个十分简单和基础的控件,相信大家使用TextView主要就是用来显示文字的, 而创建一个项目的时候,页面显示的就一个内容为Hello World 的 TextVi ...

  8. Android中设置显示文本,Android文本显示控件-TextView属性详解

    android:autoLink //设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web /email/phone/map/all) andr ...

  9. Android动态图文混排,Android控件TextView实现静态图与动态GIF图文混排

    最近做项目功能时,需要在TextView中展示图文,刚开始做的时候以为很简单,只需要用个ImageView跟TextView来展示就行了,可是发现这样做,不能实现我们需要的效果,这就需要涉及到富文本T ...

  10. Android控件TextView实现静态图与动态GIF图文混排

    最近做项目功能时,需要在TextView中展示图文,刚开始做的时候以为很简单,只需要用个ImageView跟TextView来展示就行了,可是发现这样做,不能实现我们需要的效果,这就需要涉及到富文本T ...

最新文章

  1. ekf pose使用方法 ros_ubuntu16.04下ROS操作系统学习笔记(二)
  2. c语言单片机4*4键盘程序,求51单片机矩阵4*4键盘程序,P0口接一个数码管,P3口接矩阵键盘,C语言的...
  3. python批量做线性规划(每次的约束条件参数有变换)
  4. android查看存储占用,Android获取App内存使用情况的方法
  5. 线程id 获取线程名称_016 线程及初步网络编程
  6. Flex DES加密
  7. wordpress文章发布时区时间延迟8小时解决方法
  8. 华翼宽带android客户端,太凶残了:电信推华翼宽带专门防蹭网
  9. c语言for语句用法和例子
  10. VirtualBox NAT网络实现 PXE 启动
  11. 2015 年度新增开源软件排名 TOP100
  12. Cell综述:代谢控制中的脑肠轴
  13. 几行代码,让黑白老照片重获新生!
  14. 【iOS15更新必学】 如何完整备份iPhone资料?
  15. css米奇,屹立48年不倒的IP,机械姬为什么能火这么多年?
  16. cml sml区别_cml和sml的区别
  17. 现代操作系统原理与实现
  18. DeepbrainChain2021年末週报
  19. zabbix mysql分开部署_Centos7 安装部署zabbix5.0服务端 超详细图文步骤
  20. IT餐馆—第九回 翅膀

热门文章

  1. 量化噪声的大小与什么成正比_什么叫 量化噪声?什么叫 量化白噪声?
  2. 数据库关系运算:自然连接,投影,交,除,并
  3. linux 存储映射lun 给_LINUX系统下添加映射存储LUN(无需重启)
  4. 云栖科技评论 | 数字时代需要双螺旋
  5. MarkDown-符号大全
  6. linux下载安装的命令,linux安装和常用命令
  7. 基于PHP的校园留言板系统(带后台管理)
  8. 本质矩阵与基本矩阵(Essential and Fundamental Matrices)
  9. 新上线的材料计算超算云平台Mcloud V2.0版本推出全新功能——web端工作流拖拽提交作业+便捷web端建模
  10. windows无法格式化u盘怎么办_U盘格式化失败怎么办 U盘格式化失败原因【详解】...