基于Android的富文本展现开发实践--AndroidCoreText
来源:互联网 发布:淘宝卖烟丝的怎么搜索 编辑:程序博客网 时间:2024/05/16 15:12
目前主流的基于Android富文本开发方式思路如下:
- 基于TextView图文混排
使用方式:
TextView textView = new TextView(context);
textView.setText(Html.fromHtml(“xxxxxx”));
优点:简单、易用、学习成本低,直接输入html即可
缺点:支持的样式不够灵活,有些效果实现不了。例如图片的环绕效果
- 基于布局的实现方式:
通过实现多种布局或者模板的方式实现。
优点:简单直接
缺点:复杂样式或者多种样式的情况开发效率低下,系统资源占用较多、卡顿,并且不够灵活。
- 基于AndroidCoreText的图文混排方式
AndroidTextView是一个致力于开发出一种灵活的图文混排开发框架,核心在于占坑和换行。通过占坑的方式可以支持例如图片,视频,音频等多种图文混排样式,目前通过占坑和换行可以支持环绕和单行效果。
AndroidCoreText目前支持两种使用方式:
- AttributedString
示例如下:
AttributedString string = new AttributedString("这是一个最好的时代,这是一个最坏的时代;这是一个智慧的年代,这是一个愚蠢的年代;" + "这是一个光明的季节,这是一个黑暗的季节;这是希望之春,这是失望之冬;人们面前应有尽有,人们面前一无所有;人们正踏向天堂之路,人们正走向地狱之门。");string.replaceBlock(0, 1, CYTextBlock.class).setTextSize(50).setTextColor(Color.RED) .setTypeFace(Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD_ITALIC));string.replaceBlock(30, 31, CYImageBlock.class).setResId(this, R.drawable.baidu) .setAlignStyle(CYPlaceHolderBlock.AlignStyle.Style_Round);CYView view = new CYView(this);view.setLayout(new CYHorizontalLayout());view.setBlocks(string.buildBlocks());view.setPadding(20, 20, 20, 20);
- 自定义Block
示例如下:
List<CYBlock> blocks = new ArrayList<CYBlock>();blocks.add(new CYImageBlock("").setResId(this, R.drawable.car).setAlignStyle(CYPlaceHolderBlock.AlignStyle.Style_Round));blocks.add(new CYTextBlock("这").setTextSize(50).setTextColor(Color.RED));blocks.add(new CYTextBlock("是一个最好的时代,这是一个最坏的时代;这是一个智慧的年代,这是一个愚蠢的年代;" + "这是一个光明的季节,这是一个黑暗的季节;这是希望之春,这是失望之冬;人们面前应有尽有,人们面前一无所有;人们正踏向天堂之路,人们正走向地狱之门。").setTextSize(30));blocks.add(new CYTextBlock("这是一个最好的时代,这是一个最坏的时代;这是一个智慧的年代,这是一个愚蠢的年代;" + "这是一个光明的季节,这是一个黑暗的季节;这是希望之春,这是失望之冬;人们面前应有尽有,人们面前一无所有;人们正踏向天堂之路,人们正走向地狱之门。").setTextSize(30));blocks.add(new CYBreakLineBlock(""));blocks.add(new CYImageBlock("").setResId(this, R.drawable.baidu).setAlignStyle(CYPlaceHolderBlock.AlignStyle.Style_Round));CYView view = new CYView(this);view.setLayout(new CYHorizontalLayout());view.setBlocks(blocks);view.setPadding(20, 20, 20, 20);效果如下:
GitHub地址:https://github.com/yangzc/AndroidCoreText
1 1
- 基于Android的富文本展现开发实践--AndroidCoreText
- 富文本编辑器的基本原理与实践
- 富文本编辑器的基本原理与实践
- 富文本编辑器ueditor的使用实践
- android富文本的实现
- 富文本编辑器实践
- 基于swift的一个富文本编辑器
- Android富文本编辑器开发之旅
- 富文本编辑器开发
- ios开发 富文本
- iOS 开发 富文本
- Android 文本框的 富文本处理
- Android富文本编辑器RichEditor的使用
- 关于android中TextView的富文本
- Android中TextView的富文本显示
- Android 富文本 SpannableString的使用
- Android TextView富文本的使用
- draft.js--富文本编辑器框架的实践(一)
- 常见脚本命令
- windows设置关机自启动脚本
- 自定义View--刮刮卡
- 用webmagic实现的网络爬虫
- ZOJ 3785 - What day is that day?
- 基于Android的富文本展现开发实践--AndroidCoreText
- CEdit光标置于起始位置
- 将文件放到Android模拟器的SD卡中的两种解决方法
- Android如何绘制视图
- 删除binlog
- 希尔(shell)排序原理分析及Java实现
- [android]DatePickerDialog.OnDateSetListener 不会回调三星设备上
- 有投过 Acta Tropica 的吗
- 百度天气预报接口介绍--职坐标