# MarqueeViewLibrary **Repository Path**: hihopeorg/MarqueeViewLibrary ## Basic Information - **Project Name**: MarqueeViewLibrary - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-11 - **Last Updated**: 2021-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MarqueeViewLibrary **本项目是基于开源项目MarqueeViewLibrary进行ohos化的移植和开发的,可以通过项目标签以及github地址(https://github.com/gongwen/MarqueeViewLibrary ) 追踪到原项目版本** #### 项目介绍 - 项目名称: MarqueeViewLibrary - 所属系列:ohos的第三方组件适配移植 - 功能: 一个很方便使用和扩展的跑马灯Library,通过提供不同的MarqueeFactory来定制不同的跑马灯View, 并且提供了常用类型的跑马灯效果:SimpleMarqueeView - 项目移植状态:完成 - 调用差异:无 - 项目作者和维护人: hihope - 联系方式:hihope@hoperun.com - 原项目Doc地址:https://github.com/gongwen/MarqueeViewLibrary#readme - 原项目基线版本:v_1.1.3 sha1:a5d8d69f25a2ef760578c067504dadb1348580f7 - 编程语言:Java - 外部库依赖: #### 效果展示 #### 安装教程 方法1. 1. 下载依赖库har包MarqueeViewLibrary.har。 2. 启动 DevEco Studio,将下载的har包,导入工程目录“entry->libs”下。 3. 在moudle级别下的build.gradle文件中添加依赖,在dependences标签中增加对libs目录下har包的引用。 ``` dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) …… } ``` 4. 在导入的har包上点击右键,选择“Add as Library”对包进行引用,选择需要引用的模块,并点击“OK”即引用成功。 方法2. 1. 在工程的build.gradle的allprojects中,添加HAR所在的Maven仓地址 ``` repositories { maven { url 'http://106.15.92.248:8081/repository/Releases/' } } ``` 2. 在应用模块的build.gradle的dependencies闭包中,添加如下代码: ``` dependencies { implementation 'com.gongwen.ohos:marqueelibrary:1.0.1' } ``` #### 使用说明 ##### 基本使用 MarqueeView属性 | Attribute 属性 | Description 描述 | |:--- |:---| | marqueeAnimDuration | 动画执行时间 | SimpleMarqueeView属性(支持MarqueeView所有属性及以下属性) | Attribute 属性 | Description 描述 | |:--- |:---| | smvTextSize | 文字大小 | | smvTextColor | 文字颜色 | | smvTextAlignment | 文字位置 | | smvTextSingleLine | 文字是否单行显示 | | smvTextTruncationMode | 文字显示不下时,系统的处理方式(可选:none,ellipsis_at_start,ellipsis_at_middle,ellipsis_at_end) | ### 常见用法:使用SimpleMarqueeView和SimpleMF #### XML ``` ``` #### 设置数据 ``` final List datas = Arrays.asList("《赋得古原草送别》", "离离原上草,一岁一枯荣。", "野火烧不尽,春风吹又生。", "远芳侵古道,晴翠接荒城。", "又送王孙去,萋萋满别情。"); //SimpleMarqueeView,SimpleMF:泛型T指定其填充的数据类型,比如String,Spanned等 SimpleMarqueeView marqueeView = (SimpleMarqueeView) findViewById(R.id.marqueeView); SimpleMF marqueeFactory = new SimpleMF(this); marqueeFactory.setData(datas); marqueeView.setMarqueeFactory(marqueeFactory); marqueeView.startFlipping(); ``` #### 设置监听事件 ``` marqueeView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClickListener(Text mView, String mData, int mPosition) { /** * 注意: * 当MarqueeView有子View时,mView:当前显示的子View,mData:mView所填充的数据,mPosition:mView的索引 * 当MarqueeView无子View时,mView:null,mData:null,mPosition:-1 */ } }); ``` ### 扩展用法:自定义MarqueeFactory来定制任意类型ItemView #### XML ``` ``` #### 自定义MarqueeFactory 继承自MarqueeFactory,通过泛型指定ItemView类型以及ItemData类型,之后实现generateMarqueeItemView方法,提供ItemView,并为ItemView设置数据即可。 ##### 例如: ``` //MarqueeFactory //泛型T:指定ItemView的类型 //泛型E:指定ItemView填充的数据类型 public class ComplexViewMF extends MarqueeFactory { private LayoutScatter inflater; public ComplexViewMF(Context mContext) { super(mContext); inflater = LayoutScatter.getInstance(mContext); } @Override public DependentLayout generateMarqueeItemView(ComplexItemEntity data) { DependentLayout mView = (DependentLayout) inflater.parse(ResourceTable.Layout_complex_view3, null,false); ((Text) mView.findComponentById(ResourceTable.Id_title)).setText(data.getTitle()); ((Text) mView.findComponentById(ResourceTable.Id_secondTitle)).setText(data.getSecondTitle()); ((Text) mView.findComponentById(ResourceTable.Id_time)).setText(data.getTime()); return mView; } } ``` #### 版本迭代 - v1.0.1 #### 版权和许可信息 - Apache License