TextView



只想让TextView显示一行,但是文字超过TextView的长度怎么办?

  • 在开头显示省略号
  1. android:singleLine="true"  
  2. android:ellipsize="start"  
android:singleLine="true"
android:ellipsize="start"
  • 在结尾显示省略号
  1. android:singleLine="true"  
  2. android:ellipsize="end"  
android:singleLine="true"
android:ellipsize="end"
  • 在中间显示省略号
  1. android:singleLine="true"  
  2. android:ellipsize="middle"  
android:singleLine="true"
android:ellipsize="middle"
  • 横向自动滚动(跑马灯效果)
  1. android:singleLine="true"  
  2. android:ellipsize="marquee"  
  3. android:marqueeRepeatLimit="marquee_forever"  
  4. android:focusable="true"  
  5. android:focusableInTouchMode="true"  
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"

以上4个效果都要加上 android:singleLine="true",因为TextView默认是会自动换行的

android:ellipsize是设置文字过长时,该怎么显示

android:marqueeRepeatLimit="marquee_forever"是设置永远重复,当然你也可以设置具体的数字

android:focusable="true"和android:focusableInTouchMode="true"一定要加上,不然滚动效果出不来

怎么让TextView可以垂直滚动?

在Java代码中加入下面一句话就可以实现垂直滚动

  1. textView.setMovementMethod(ScrollingMovementMethod.getInstance());  
textView.setMovementMethod(ScrollingMovementMethod.getInstance());

RichTextView(富文本)

怎么实现在同一个TextView中设置不同的字体风格呢?

需要使用的类:android.text.Spanned;      android.text.SpannableString;       android.text.SpannableStringBuilder

SpannableString和SpannableStringBuilder的区别就相当于String和StringBuffer

SpannableString和SpannableStringBuilder可以用来设置不同的Span,这些Span便是用于实现Rich TextView,比如粗体,斜体,前景色,背景色,字体大小,字体风格等等,android.text.style.*中定义了很多的Span类型可供使用。

常见的Span见下面的Demo

setSpan(Object what, int start, int end, int flags)中的flags可以设为0或Spanned中定义的值
  • Spanned.SPAN_EXCLUSIVE_EXCLUSIVE --- 不包含两端start和end所在的端点
  • Spanned.SPAN_EXCLUSIVE_INCLUSIVE --- 不包含start,但包含end
  • Spanned.SPAN_INCLUSIVE_EXCLUSIVE --- 包含start,但不包含end
  • Spanned.SPAN_INCLUSIVE_INCLUSIVE--- 包含start和end所在的端点

其中0就相当于Spanned.SPAN_INCLUSIVE_INCLUSIVE

这里的包不包含就好比数学里面的开区间,闭区间

下面是一个Demo

  1. package com.tianjf;  
  2.   
  3. import android.app.Activity;  
  4. import android.graphics.Color;  
  5. import android.graphics.drawable.Drawable;  
  6. import android.os.Bundle;  
  7. import android.text.SpannableString;  
  8. import android.text.Spanned;  
  9. import android.text.method.LinkMovementMethod;  
  10. import android.text.style.AbsoluteSizeSpan;  
  11. import android.text.style.BackgroundColorSpan;  
  12. import android.text.style.BulletSpan;  
  13. import android.text.style.ForegroundColorSpan;  
  14. import android.text.style.ImageSpan;  
  15. import android.text.style.RelativeSizeSpan;  
  16. import android.text.style.ScaleXSpan;  
  17. import android.text.style.StrikethroughSpan;  
  18. import android.text.style.StyleSpan;  
  19. import android.text.style.SubscriptSpan;  
  20. import android.text.style.SuperscriptSpan;  
  21. import android.text.style.TypefaceSpan;  
  22. import android.text.style.URLSpan;  
  23. import android.text.style.UnderlineSpan;  
  24. import android.widget.TextView;  
  25.   
  26. public class RichTextViewDemoActivity extends Activity {  
  27.   
  28.     TextView mTextView = null;  
  29.     SpannableString mSpannableString = null;  
  30.   
  31.     @Override  
  32.     public void onCreate(Bundle savedInstanceState) {  
  33.         super.onCreate(savedInstanceState);  
  34.         setContentView(R.layout.main);  
  35.   
  36.         mTextView = (TextView) findViewById(R.id.myTextView);  
  37.   
  38.         // 创建一个 SpannableString对象  
  39.         mSpannableString = new SpannableString(  
  40.                 "字体测试字体大小一半两倍前景色背景色正常粗体斜体粗斜体下划线删除线x1x2电话邮件网站短信彩信地图X轴/bot");  
  41.   
  42.         // 设置字体(default,default-bold,monospace,serif,sans-serif)  
  43.         mSpannableString.setSpan(new TypefaceSpan("monospace"), 02,  
  44.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  45.         mSpannableString.setSpan(new TypefaceSpan("sans-serif"), 24,  
  46.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  47.   
  48.         // 设置字体大小(绝对值,单位:像素)  
  49.         mSpannableString.setSpan(new AbsoluteSizeSpan(20), 48,  
  50.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  51.   
  52.         // 设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍  
  53.         mSpannableString.setSpan(new ScaleXSpan(2.0f), 4951,  
  54.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变  
  55.   
  56.         // 设置字体大小(相对值,单位:像素) 参数表示为默认字体大小的多少倍  
  57.         mSpannableString.setSpan(new RelativeSizeSpan(0.5f), 810,  
  58.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 0.5f表示默认字体大小的一半  
  59.         mSpannableString.setSpan(new RelativeSizeSpan(2.0f), 1012,  
  60.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 2.0f表示默认字体大小的两倍  
  61.   
  62.         // 设置字体前景色  
  63.         mSpannableString.setSpan(new ForegroundColorSpan(Color.MAGENTA), 12,  
  64.                 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 设置前景色为洋红色  
  65.   
  66.         // 设置字体背景色  
  67.         mSpannableString.setSpan(new BackgroundColorSpan(Color.CYAN), 1518,  
  68.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 设置背景色为青色  
  69.   
  70.         // 设置字体样式正常,粗体,斜体,粗斜体  
  71.         mSpannableString.setSpan(  
  72.                 new StyleSpan(android.graphics.Typeface.NORMAL), 1820,  
  73.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 正常  
  74.         mSpannableString.setSpan(new StyleSpan(android.graphics.Typeface.BOLD),  
  75.                 2022, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 粗体  
  76.         mSpannableString.setSpan(  
  77.                 new StyleSpan(android.graphics.Typeface.ITALIC), 2224,  
  78.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 斜体  
  79.         mSpannableString.setSpan(new StyleSpan(  
  80.                 android.graphics.Typeface.BOLD_ITALIC), 2427,  
  81.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 粗斜体  
  82.   
  83.         // 设置下划线  
  84.         mSpannableString.setSpan(new UnderlineSpan(), 2730,  
  85.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  86.   
  87.         // 设置删除线  
  88.         mSpannableString.setSpan(new StrikethroughSpan(), 3033,  
  89.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  90.   
  91.         // 设置上下标  
  92.         mSpannableString.setSpan(new SubscriptSpan(), 3435,  
  93.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 下标  
  94.         mSpannableString.setSpan(new SuperscriptSpan(), 3637,  
  95.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 上标  
  96.   
  97.         // 超级链接(需要添加setMovementMethod方法附加响应)  
  98.         mSpannableString.setSpan(new URLSpan("tel:4155551212"), 3739,  
  99.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 电话  
  100.         mSpannableString.setSpan(new URLSpan("mailto:webmaster@google.com"),  
  101.                 3941, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 邮件  
  102.         mSpannableString.setSpan(new URLSpan("http://www.baidu.com"), 4143,  
  103.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 网络  
  104.         mSpannableString.setSpan(new URLSpan("sms:4155551212"), 4345,  
  105.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 短信 使用sms:或者smsto:  
  106.         mSpannableString.setSpan(new URLSpan("mms:4155551212"), 4547,  
  107.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 彩信 使用mms:或者mmsto:  
  108.         mSpannableString.setSpan(new URLSpan("geo:38.899533,-77.036476"), 47,  
  109.                 49, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 地图  
  110.   
  111.         // 设置项目符号  
  112.         // 第一个参数表示项目符号占用的宽度,第二个参数为项目符号的颜色  
  113.         mSpannableString.setSpan(new BulletSpan(  
  114.                 android.text.style.BulletSpan.STANDARD_GAP_WIDTH, Color.GREEN),  
  115.                 0, mSpannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  116.   
  117.         // 设置图片  
  118.         Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);  
  119.         drawable.setBounds(00, drawable.getIntrinsicWidth(),  
  120.                 drawable.getIntrinsicHeight());  
  121.         mSpannableString.setSpan(new ImageSpan(drawable), 5155,  
  122.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  123.   
  124.         mTextView.setText(mSpannableString);  
  125.         mTextView.setMovementMethod(LinkMovementMethod.getInstance());  
  126.     }  
  127. }  

下载前可以先看下教程 https://pan.quark.cn/s/a426667488ae 标题“仿淘宝jquery图片左右切换带数字”揭示了这是一个关于运用jQuery技术完成的图片轮播机制,其特色在于具备淘宝在线平台普遍存在的图片切换表现,并且在整个切换环节中会展示当前图片的序列号。 此类功能一般应用于电子商务平台的产品呈现环节,使用户可以便捷地查看多张商品的照片。 说明中的“NULL”表示未提供进一步的信息,但我们可以借助标题来揣摩若干核心的技术要点。 在构建此类功能时,开发者通常会借助以下技术手段:1. **jQuery库**:jQuery是一个应用广泛的JavaScript框架,它简化了HTML文档的遍历、事件管理、动画效果以及Ajax通信。 在此项目中,jQuery将负责处理用户的点击动作(实现左右切换),并且制造流畅的过渡效果。 2. **图片轮播扩展工具**:开发者或许会采用现成的jQuery扩展,例如Slick、Bootstrap Carousel或个性化的轮播函数,以达成图片切换的功能。 这些扩展能够辅助迅速构建功能完善的轮播模块。 3. **即时数字呈现**:展示当前图片的序列号,这需要通过JavaScript或jQuery来追踪并调整。 每当图片切换时,相应的数字也会同步更新。 4. **CSS美化**:为了达成淘宝图片切换的视觉效果,可能需要设计特定的CSS样式,涵盖图片的排列方式、过渡效果、点状指示器等。 CSS3的动画和过渡特性(如`transition`和`animation`)在此过程中扮演关键角色。 5. **事件监测**:运用jQuery的`.on()`方法来监测用户的操作,比如点击左右控制按钮或自动按时间间隔切换。 根据用户的交互,触发相应的函数来执行...
垃圾实例分割数据集 一、基础信息 • 数据集名称:垃圾实例分割数据集 • 图片数量: 训练集:7,000张图片 验证集:426张图片 测试集:644张图片 • 训练集:7,000张图片 • 验证集:426张图片 • 测试集:644张图片 • 分类类别: 垃圾(Sampah) • 垃圾(Sampah) • 标注格式:YOLO格式,包含实例分割的多边形点坐标,适用于实例分割任务。 • 数据格式:图片文件 二、适用场景 • 智能垃圾检测系统开发:数据集支持实例分割任务,帮助构建能够自动识别和分割图像中垃圾区域的AI模型,适用于智能清洁机器人、自动垃圾桶等应用。 • 环境监控与管理:集成到监控系统中,用于实时检测公共区域的垃圾堆积,辅助环境清洁和治理决策。 • 计算机视觉研究:支持实例分割算法的研究和优化,特别是在垃圾识别领域,促进AI在环保方面的创新。 • 教育与实践:可用于高校或培训机构的AI课程,作为实例分割技术的实践数据集,帮助学生理解计算机视觉应用。 三、数据集优势 • 精确的实例分割标注:每个垃圾实例都使用详细的多边形点进行标注,确保分割边界准确,提升模型训练效果。 • 数据多样性:包含多种垃圾物品实例,覆盖不同场景,增强模型的泛化能力和鲁棒性。 • 格式兼容性强:YOLO标注格式易于与主流深度学习框架集成,如YOLO系列、PyTorch等,方便研究人员和开发者使用。 • 实际应用价值:直接针对现实世界的垃圾管理需求,为自动化环保解决方案提供可靠数据支持,具有重要的社会意义。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值