Android【垂直滚动广告条】仿淘宝头条1号店京东—垂直滚动广告条
文章为博主原创,欢迎大家进行阅读和转载,转载请注明出处:http://blog.csdn.net/sophie237/article/details/54911349
淘宝头条是淘宝App中很经典的一个功能显示,主要用于显示最近的热评新闻,显示主要方式为文字竖直滚动效果,下面简单阐述一下本demo所涉及到的技术点以及功能展示
1.主要用到的控件为Android原生控件ViewFlipper
2.1本demo不仅可以像淘宝一样进行上下滚动,并且可以对滚动中的内容进行点击删除
2.2可修改切入动画方式
2.3修改展示时间延迟
下面展示一下淘宝中,出现淘宝头条的效果图
下面展示下我的demo中的效果
下面简单阐述一下设计的思路以及用到的代码
1.首先看一下对ViewFlipper的解释
本人翻译为:ViewFlipper可以用来将两个视图或者两个以上的视图进行简单的添加。但是在同一时间仅仅显示一个子视图。如果要求,也可以定期对每个孩子View之间进行自动翻转。
也就是说,ViewFlipper是一个非常方便的切换视图的一个控件
2.介绍各个视图之间来回切入切出(上下滚动)的动画
实际上是两个进入和退出的两个动画文件
- push_up_in.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate
android:duration="500"android:fromYDelta="100%p"android:toYDelta="0" /><alpha
android:duration="500"android:fromAlpha="0.0"android:toAlpha="1.0" />
</set>
- push_up_out.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromYDelta="0" android:toYDelta="-100%p" android:duration="500"/><alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />
</set>
3.在MainActivity的布局文件中,用到ViewFlipper
- activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.sunqi237.scrollview.MainActivity"><ViewFlipper
android:id="@+id/flipper"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@android:color/white"android:autoStart="true"android:flipInterval="3000"android:inAnimation="@anim/push_up_in"android:outAnimation="@anim/push_up_out"></ViewFlipper>
</RelativeLayout>
注意:这里涉及到了ViewFlipper的几个常用的属性
1.android:autoStart=”true” 当获取到当前视图时,则自动对视图进行滚动
2.android:inAnimation 设置ViewFlipper的切入动画
3.android:outAnimation 设置ViewFlipper的切出动画
4.android:flipInterval 设施ViewFlipper的滚动间隔(显示延迟)
4.MainActivity中的代码展示
public class MainActivity extends AppCompatActivity {private ViewFlipper flipper;private List testList;private int count;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);flipper = (ViewFlipper) findViewById(R.id.flipper);//初始化list数据testList = new ArrayList();testList.add(0, "爸妈爱的“白”娃娃,真是孕期吃出来的吗?");testList.add(1, "如果徒步真的需要理由,十四个够不够?");testList.add(2, "享受清爽啤酒的同时,这些常识你真的了解吗?");testList.add(3, "三星Galaxy S8定型图无悬念");testList.add(4, "家猫为何如此高冷?");count = testList.size();for (int i = 0; i < count; i++) {final View ll_content = View.inflate(MainActivity.this, R.layout.item_flipper, null);TextView tv_content = (TextView) ll_content.findViewById(R.id.tv_content);ImageView iv_closebreak = (ImageView) ll_content.findViewById(R.id.iv_closebreak);tv_content.setText(testList.get(i).toString());iv_closebreak.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//对当前显示的视图进行移除flipper.removeView(ll_content);count--;//当删除后仅剩 一条 新闻时,则取消滚动if (count == 1) {flipper.stopFlipping();}}});flipper.addView(ll_content);}}
}
5.插入子视图的思路
设置一个子视图item_flipper.xml,写好子视图布局
- item_flipper.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextView
android:layout_width="wrap_content"android:layout_marginLeft="20dp"android:layout_height="wrap_content"android:background="@drawable/scrollview_bg"android:text="热议"android:textColor="#F14C00"android:textSize="12sp" /><TextView
android:id="@+id/tv_content"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_gravity="top"android:layout_weight="1"android:gravity="top"android:paddingBottom="10dp"android:paddingLeft="@dimen/dp_16"android:paddingTop="@dimen/dp_12"android:text="BreakingNews"android:textColor="@android:color/black"android:textSize="@dimen/font_16"></TextView><ImageView
android:id="@+id/iv_closebreak"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="@dimen/dp_12"android:paddingRight="@dimen/dp_16"android:src="@drawable/close" />
</LinearLayout>
- scrollview_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><corners android:radius="5dp" /><stroke
android:width="0.1dp"android:color="#F14C00" /><solid android:color="#fff" /><padding
android:bottom="3dp"android:left="3dp"android:right="3dp"android:top="3dp" />
</shape>
总结:
1.利用一个for循环,将子视图进行添加
2.对子视图设置点击,通过.removeView() .addView()方法进行增加和删除子视图
最后,附上完整demo的地址:http://download.csdn.net/detail/sophie237/9749145
文章为博主原创,欢迎大家进行阅读和转载,转载请注明出处:http://blog.csdn.net/sophie237/article/details/54911349
Android【垂直滚动广告条】仿淘宝头条1号店京东—垂直滚动广告条相关推荐
- Android基础控件——ViewFlipper的使用,仿淘宝头条垂直滚动广告条
ViewFlipper的使用,仿淘宝头条垂直滚动广告条 学习,学习,学以致用 ViewFlipper是安卓自带的控件,很多人可能很少知道这个控件,这个控件很简单,也很好理解,能不能用上实战就看你们的本 ...
- ViewFlipper实现文字轮播(仿淘宝头条垂直滚动广告)
ViewFlipper实现文字轮播(仿淘宝头条垂直滚动广告) 广告条目可以单独写成布局文件,然后在布局文件或者代码中添加到总布局中 从源码可以看出,其实ViewFlipper间接的继承了FrameLa ...
- Android 垂直滚动广告条,仿淘宝头条垂直滚动展示最新消息
最新的项目有个新需求,就是要去垂直滚动去展示最新发布的消息,类似淘宝头条的那种 1.功能实现其实很简单,就用到Android 的原生控件ViewFlipper <ViewFlipperandro ...
- Android——仿淘宝头条垂直滚动广告
淘宝App大家用的都比较多了哈,最近看淘宝头条比较多,就来写个小例子吧. 垂直滚动广告的实现原理其实比较简单,就是定时更新列表内容嘛,然后列表切换的时候再加点炫酷的动画就OK了.如果对Android控 ...
- Android仿淘宝头条垂直滚动,垂直走马灯,公告
今天看了淘宝头条的的滚动,感觉用户体验非常好,然后在就github上找到了一个, github:https://github.com/gongwen/MarqueeViewLibrary 效果图如下: ...
- Android 原生控件ViewFlipper实现淘宝头条垂直滚动广告条
showPrevious(): 显示ViewFlipper里的上一个View 四.ViewFlipper的详细使用设置View 1.首先在xml中声明ViewFlipper < ...
- Android 实现图片轮播(仿淘宝首页商品轮播展示)
一 引用依赖 // 图片轮播图implementation 'com.github.dongjunkun:BannerLayout:1.0.6' 二 创建图片加载工具类 public class G ...
- 仿淘宝、头条上下轮播广告
仿淘宝.头条上下滚动自动轮播广告效果 前言:想必大家工作久了,都会接触横向走马灯.纵向走马灯的效果.在这里介绍系统自带的控件来实现纵向走马灯(上下滚动)效果. 布局: <ViewFlippera ...
- Android一点 仿淘宝购物车动画
首先看看ios上的淘宝购物车的动画效果ios淘宝购物车动画 我们实现的效果 看特效是分为两个界面,一个是主view,一个是弹出层.弹出层是用dialog实现的,只是加入了弹出的动画,这里就不分析了,我 ...
最新文章
- 致命错误: zlib.h:没有那个文件或目录
- 游戏开发中的图像生成
- 理解Linux中断 (2)【转】
- 程序员面试题精选100题(08)-求1+2+...+n[C/C++/C#]
- java,关键字static
- “盛大文学”年终派对
- 判断 Python 对象是否包含某个属性的方法
- mysql 快速导出_mysql 快速导入导出
- VMWare MAC系统调整磁盘
- php跨域传sessionid,php中http与https跨域共享session的解决方法
- Harmony OS — PageSlider滑动页面
- 安装pyspider报错:ERROR: Complete output from command python setup.py egg_info:...
- 制作微软引导盘实现装系统0失败uefi启动MediaCreationTool
- CSF文件格式播放器
- flink的mysql两阶段提交_Flink 源码之两阶段提交
- 常用的推挽输出、开漏输出、上拉输入
- 泉州地区的“会子”是一种怎样的制度?
- 【功能测试】part2
- 金融×元宇宙:虚实交融共进下的金融体系
- 在Mac中开发STM32单片机
热门文章
- java计算机毕业设计外卖点餐系统源代码+数据库+系统+lw文档
- SQL54 查找排除当前最大、最小salary之后的员工的平均工资avg_salary
- 红外补光灯发热的原因 - 是红外线辐射导致的吗?
- 神经网络硕士就业前景,神经网络就业怎么样
- JS中数组随机排序实现(原地算法sort/shuffle算法)
- 微信小程序 - 设置input只能输入数字
- 微信小程序 修改键盘的回车键及监听事件
- 0x10 基本数据结构
- linux 桌面 修复工具下载,GNOME Desktop For Linux下载_GNOME Desktop For Linux官方下载-太平洋下载中心...
- Swift4 'substring(to:)' is deprecated: Please use String slicing subscript with a 'partial range upt