热门头条的实现—MarqueeView、ViewFlipper
来源:互联网 发布:合肥淘宝美工培训 编辑:程序博客网 时间:2024/06/05 15:06
类似于淘宝热门头条的实现——ViewFlipper。布局文件:
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:padding="20px"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@mipmap/bulletin" /> <ViewFlipper android:id="@+id/viewflipper" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="30px"> </ViewFlipper> </LinearLayout>
主要代码如下:
public class ViewFlipper1 extends Activity{ private ViewFlipper viewFlipper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.actitivity_view_flipper); viewFlipper =(ViewFlipper) findViewById(R.id.viewflipper); for (int i = 0; i < 5; i++) { viewFlipper.addView(getTextViewTitle("这里是热门头条" + i)); } //点击事件 viewFlipper.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ViewFlipper1.this, viewFlipper.getDisplayedChild()+"", Toast.LENGTH_SHORT).show(); } }); viewFlipper.setFlipInterval(1500);//多长时间换下一个 viewFlipper.startFlipping(); } private TextView getTextViewTitle(String title) { TextView textView = new TextView(this); textView.setGravity(Gravity.CENTER_VERTICAL); textView.setText(title); return textView; }}
这里没法直接加文字,我是先手动创建TextView,然后把标题设置好,添加到ViewFlipper。没有设置动画,要设置动画自己写。为了增加用户体验可以在onstart(),onStop()写对应的方法startFlipping()、stopFlipping()。然后是一个第三方的——MarqueeView,首先依赖
compile 'com.sunfusheng:marqueeview:1.2.0'
布局文件如下:
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:padding="20px"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@mipmap/bulletin" android:layout_marginLeft="30px"/> <com.sunfusheng.marqueeview.MarqueeView android:id="@+id/marqueeView" android:layout_width="match_parent" android:layout_height="30dp" android:layout_marginLeft="30px" app:mvAnimDuration="500" app:mvInterval="2000" app:mvTextColor="@color/colorAccent" app:mvTextSize="14sp" app:mvSingleLine="true"/> </LinearLayout>
属性:Attribute 属性 Description 描述mvAnimDuration 一行文字动画执行时间mvInterval 两行文字翻页时间间隔mvTextSize 文字大小mvTextColor 文字颜色mvGravity 文字位置:left、center、rightmvSingleLine 单行设置主要代码如下:
public class MarqueeView1 extends Activity{ private MarqueeView marqueeView; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view_marquee); marqueeView = (MarqueeView) findViewById(R.id.marqueeView); List<String> info = new ArrayList<>(); for (int i = 0; i < 5; i++) { info.add("这里是热门头条" + i); } marqueeView.startWithList(info); //点击事件 marqueeView.setOnItemClickListener(new MarqueeView.OnItemClickListener() { @Override public void onItemClick(int position, TextView textView) { Toast.makeText(getApplicationContext(), String.valueOf(marqueeView.getPosition()) + ". " + textView.getText(), Toast.LENGTH_SHORT).show(); } }); } @Override public void onStart() { super.onStart(); marqueeView.startFlipping(); } @Override public void onStop() { super.onStop(); marqueeView.stopFlipping(); }}
这里就直接调用对应的方法,传对应的变量就可以了,还有动画。
项目链接
阅读全文
0 0
- 热门头条的实现—MarqueeView、ViewFlipper
- Android基础控件——ViewFlipper的使用,仿淘宝头条垂直滚动广告条
- Android基础控件——ViewFlipper的使用,仿淘宝头条垂直滚动广告条
- Android 原生控件ViewFlipper实现淘宝头条垂直滚动广告条
- 走马灯的控件 MarqueeView(继承ViewFlipper),解锁后,走马灯失效的解决方法
- ViewFlipper的使用,仿淘宝头条垂直滚动广告条
- Android仿淘宝头条向上滚动广告条的效果ViewFlipper
- 【Android 进阶】淘宝头条:向上滚动广告条ViewFlipper
- viewFlipper的基本实现
- RecyclerViewHeader+ViewFlipper仿淘宝头条滚动效果
- ViewFlipper实现左滑右滑的效果
- 跑马灯ViewFlipper的实现
- Android 用ViewFlipper简单实现广告滚动条
- Android ViewFlipper实现淘宝垂直滚动广告条
- Android控件——ViewFlipper的使用,垂直滚动广告条
- iOS项目之Swift新闻App(五)—头条新闻的实现
- Viewpager实现今日头条顶部导航的功能
- ListView+Fragment+ViewPager配合,实现今日头条的效果
- github的一些使用指南
- golang编辑器 Idea IntelliJ
- EF实现批量更新(一般处理程序)
- Java和MySQL数据类型对应表
- Altium Designer设计的pcb文件特别大原因分析之一!
- 热门头条的实现—MarqueeView、ViewFlipper
- php学习路线图
- 求黑色星期五-Calendar的使用
- nginx+php显示 502 bad gateway的解决方法
- 标示符定义的规则?
- Spark性能优化:资源调优篇
- 整数排序Ⅱ
- java实现二叉搜索树转双向链表
- 数据库设计规范