美文网首页资料 | 汇总程序员UI
Android仿淘宝滚动的头条

Android仿淘宝滚动的头条

作者: shb1994 | 来源:发表于2017-02-06 17:02 被阅读0次

1. 先看效果图

marquee_view.gif

感谢鸿洋大神,我是从他的博客上看到的,在自己实现的。

2. 使用android 原生的控件ViewFlipper 实现

  • activity布局的实现
    <?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"
    tools:context="com.spore.marqueeview.MainActivity">
    <ViewFlipper
    android:id="@+id/marquee_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:autoStart="true"
    android:background="#fff"
    android:flipInterval="3000"
    android:inAnimation="@anim/anim_marquee_in"
    android:outAnimation="@anim/anim_marquee_out">
    </ViewFlipper>
    </RelativeLayout>

3. 各属性的含义

  • autoStart : 顾名思义,自动滚动。
  • flipInterval: 滑动间隔时间。
  • inAnimation: 进入动画。
  • outAnimation: 出来的动画。
  • 其中动画就是一个简单的Y轴 xml平移动画, 都在res/anim下。
    • anim_in
      <?xml version="1.0" encoding="utf-8"?>
      <set xmlns:android="http://schemas.android.com/apk/res/android"
      >
      <translate
      android:duration="1500"
      android:fromYDelta="100%p"
      android:toYDelta="0">
      </translate>
      </set>
  • anim_out
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
    android:duration="1500"
    android:fromYDelta="0"
    android:toYDelta="-100%p">
    </translate>
    </set>
  • 也可以通过代码设置。
    • isFlipping() : 判断是否滑动。
    • marqueeView.setFlipInterval():设置滑动的间隙。
    • setOutAnimation() : 设置View出去的动画。
    • setInAnimation() : 设置View进入的动画。
    • showNext() : 显示ViewFlipper中的下个View。
    • showPrevious : 显示ViewFlipper里面的上一个View 。

4. 自定义广告条布局文件。

  <?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_height="wrap_content"
    android:background="@drawable/marquee_text_background"
    android:padding="5dp"
    android:text="热评"
    android:textColor="@android:color/holo_orange_dark"
    android:textSize="18sp"/>
<TextView
    android:singleLine="true"
    android:textSize="18sp"
    android:paddingLeft="10dp"
    android:gravity="center_vertical"
    android:text="魅族_魅蓝note5_新品上市,赶快拥有"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
</LinearLayout>
  • 这个滚动条就简单的实现了。

相关文章

网友评论

    本文标题:Android仿淘宝滚动的头条

    本文链接:https://www.haomeiwen.com/subject/nmluittx.html