Android 循环滚动控件ViewFlipper,可实现跑马灯或轮播图效果

ViewFlipper——Android循环滚动控件

1、效果如下:

2、实现方法

(1)创建进出动画

上下滚动动画

y_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromYDelta="100%p"android:toYDelta="0"android:duration="1000"/>
</set>

y_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromYDelta="0"android:toYDelta="-100%p"android:duration="1000"/>
</set>

左右滚动动画

x_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromXDelta="100%p"android:toXDelta="0"android:duration="1000"/>
</set>

x_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromXDelta="0"android:toXDelta="-100%p"android:duration="1000"/>
</set>

(2)layout文件引用ViewFlipper

<ViewFlipperandroid:id="@+id/filpper"android:layout_width="match_parent"android:layout_height="wrap_content"android:autoStart="true"android:flipInterval="2000"android:inAnimation="@anim/x_in"android:outAnimation="@anim/x_out"/>

(3)activity中java代码实现ViewFlipper跑马灯效果

TextView textView;
ViewFlipper viewFlipper;
viewFlipper= (ViewFlipper) findViewById(R.id.filpper);
for (int i = 0; i < 5; i++) {View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.layout_custom, null);textView = view.findViewById(R.id.myte1);textView.setText("sssssssss===="+i);viewFlipper.addView(view);
}

4、ViewFlipper的item点击事件——demo链接:https://download.csdn.net/download/meixi_android/10815720

 

5、demo云盘链接:https://pan.baidu.com/s/1AvqpfbzCAXtZ-TLVmEUyvw

在线回复云盘密码:qq1085220040

6、可实现banner轮播图效果

 

 

左右跑马灯

 

<LinearLayoutandroid:id="@+id/ll_bottom"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:background="#FDC74B"><TextViewandroid:id="@+id/tv_message"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="15pt"android:layout_marginRight="15pt"android:ellipsize="marquee"android:focusable="true"android:focusableInTouchMode="true"android:gravity="center_vertical"android:includeFontPadding="false"android:marqueeRepeatLimit="marquee_forever"android:paddingBottom="15pt"android:paddingTop="15pt"android:singleLine="true"android:textColor="@color/black"android:textSize="36pt" /></LinearLayout>

 

public class StringUtil {//长度加倍public static String multiplyString(String str, int number) {if (str == null) {throw new NullPointerException("String is null!");}if ("".equals(str)) {throw new IllegalArgumentException("The length of string is zero !");}if (number == 0) {throw new IllegalArgumentException("Number is zero!");}StringBuffer buffer = new StringBuffer();for (int i = 0; i < number; i++) {buffer.append(str);}return buffer.toString();}}
tvMessage.setText(aboutUsResult.getData().getApkmsg() + StringUtil.multiplyString(" ", 30));

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

压缩及解压命令

*.tar 文件类型 打包&#xff1a; tar cvf tmp.tar /tmp #将目录打包成一个文件解包&#xff1a; tar xvf tmp.tar*.tar.gz 文件类型 打包&#xff1a;tar cvzf tmp.tar.gz /tmp解包&#xff1a;tar xvzf tmp.tar.gz*.tar.bz2 文件类型 打包&#xff1a;tar jcvf t…

vue js table colspan rowspan

需求&#xff0c;要写一个菜单权限表。需要做到单元格合并&#xff0c;本来用的antd-vue的表格&#xff0c;然后构造customRender,总感觉有点本末倒置&#xff0c;其实自己实现&#xff0c;更快&#xff0c;而且想改哪里&#xff0c;改哪里。下面是写这个功能前的测试demo。 效…

前端学习(2687):重读vue电商网站8之设置弹框提示组件

首先&#xff0c;在 element.js 中导入弹框提示组件&#xff0c;但是它的配置与其它组件不一样&#xff0c;它需要进行全局挂载。 全局导入后&#xff0c;我们就可以在我们的登录组件 login.vue 中通过 this来访问弹框提示组件了。 测试一下&#xff0c;输入 admin 和 123456&a…

table 权限 展示页面

上篇文件介绍了基本的colspan和rowspan&#xff0c;这篇贴上一个学习代码&#xff0c;供以后修改。 效果如下&#xff1a;&#xff08;这个demo v-if 和 v-for 混用了&#xff0c;这个不好&#xff09; <template><div class"rbac-table"><div clas…

vue 公用组件开发 确认框confirm

文件目录&#xff1a; github地址&#xff1a;https://github.com/xingkongwuyu/vue-spa-experience/tree/master/src/components 最终的效果&#xff1a; 组件的源码解析&#xff1a; confirm &#xff1a; confirm的框架 ./index.js import confirmBox from ./src/index; ex…

前端学习(2688):重读vue电商网站9之el-menu 默认会有一个 border-right

这样会导致我们的菜单栏右边会有一个若隐若现的线条凸起 解决办法如下&#xff0c;直接将 el-menu 的border-right 设置为 none 即可。

Android studio 导入module方法

添加module方法步骤&#xff1a; &#xff08;1&#xff09;File----->New------>Import Module找到下载的citypicker文件&#xff0c;点击OK&#xff0c;点击Finish &#xff08;2&#xff09;app的build.gradle下的dependencies下添加 compile project(:citypicker)如…

vue构建项目

想把项目公司一些基础公用组件进行封装&#xff0c;所以需要对单组件进行开发优化。使用到Vue Cli 官方文档&#xff1a;https://cli.vuejs.org/zh/guide/build-targets.html 1、一个新环境&#xff0c;需要安装Vue Cli npm install -g vue/cli npm install -g vue/cli-serv…

前端学习(2689):重读vue电商网站10之表格展开页

只需要将 el-table-column 中 type 属性设为 expand 即能将表格进行展开。 实现效果如下&#xff1a;

Python day 9(6) 调试

程序能一次写完并正常运行的概率很小&#xff0c;基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单&#xff0c;看看错误信息就知道&#xff0c;有的bug很复杂&#xff0c;我们需要知道出错时&#xff0c;哪些变量的值是正确的&#xff0c;哪些变量的值是错误的&…

AppTheme 属性详解

<style name"AppTheme" parent"Theme.AppCompat.Light.NoActionBar"><!--Appbar背景色&#xff0c;应用的主要色调&#xff0c;actionBar默认使用该颜色--><item name"android:colorPrimary">color/material_animations_prima…

yarn 安装 sass

将 node-sass 设置全局镜像 // 命令行输入 npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/安装 yarn add node-sass

前端学习(2690):重读vue电商网站11之使用树形控件 el-tree

对于分配权限一栏&#xff0c;我们需要如下效果&#xff1a; 相关配置属性&#xff1a; 其中 data 为我们的数据源&#xff0c;props 为我们在 tree组件显示的文本内容。通过设置 node-key可以让每个树节点作为唯一标识的属性&#xff0c;整棵树是唯一的&#xff1b;通过设置 …

Android 播放raw文件夹下音频文件,本地MP3文件播放,播放云端MP3文件,获取MP3文件播放时长

1、复制音频文件到raw文件夹下 2、实例化音频文件 private final MediaPlayer.OnCompletionListener beepListener new MediaPlayer.OnCompletionListener() { // 声音public void onCompletion(MediaPlayer mediaPlayer) {mediaPlayer.seekTo(0);} }; private static final …

前端学习(2691):重读vue电商网站12之获取选中节点的keys:

首先&#xff0c;给我们对话框的确定按钮绑定一个事件。 主要使用 tree 组件提供的两个方法 getCheckedKeys 和 getHalfCheckedKeys来分别返回目前被选中的节点的 key 所组成的数组和目前半选中的节点的 key 所组成的数组

cmd 【已解决】windows连接手机,运行adb devices提示“unauthorized”

报错截图如下&#xff1a; 问题原因&#xff1a;电脑连接手机。手机未授权 解决方式&#xff1a; 设置----开发者选项-----打开USB调试&#xff0c;出现如下弹框&#xff0c;点击“确定”即可解决问题。 转载于:https://www.cnblogs.com/syw20170419/p/8280291.html

Android 可开关式顶部下拉view

效果&#xff1a; 实现方法 1、layout文件结构 最外部使用相对布局 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.c…

emit传参,获取返回值

我的需求&#xff0c;子应用调用主应用方法&#xff0c;主应用返回参数。 主应用&#xff1a; methods:{ getToken(callback) {callback(this.$store.state.user.auth)}, }, mounted(){this.$bus.on(getToken, this.getToken) }子应用&#xff1a; mounted(){ this.$qkBus.e…

前端学习(2692):重读vue电商网站13之使用动态编辑标签

实现效果如下&#xff1a; 通过 v-if 的 boolean值来动态变化是否显示文本框还是 button 按钮。通过 v-model 双向绑定来实现文本框内容的监听。 由于每一行需要设置文本框的显示与隐藏&#xff0c;而且数据是共享的。我们需要通过 scope来获取每一行的值来进行绑定&#xff0…