MarqueeView的简单使用

前言:

应公司要求,最近要接手并维护一个老的项目,然后刚拿到代码,自己又很菜,所以就拿整个项目的代码看一遍,记录其中的不熟悉知识点,或者用的不是很六的知识点。

学习引入

我们打开项目代码,一开始会看到如下代码:

MarqueeView的简单使用_第1张图片

有点难受,这好像是自定义控件的知识(Android进阶必须会的,我那个系列还没写完,因为思路断了),不过我们可以硬着头皮看下去,否则这辈子都不可能成长成大佬的。

ViewFlipper的使用

这个点进去看下,很明显能知道这是Android原生的控件,只是使用的没那么多,至少我这还是第一次看到,它是用来实现左右滑动效果的功能的,ViewPager能实现的它都能实现。

首先布局文件:



    
        
        
        
        
    

 

flipInterval是控制多少毫秒显示下一张图片的时间。

核心代码:

public class ViewAnimatorActivity extends Activity{
    ViewFlipper flipper;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_viewanimator);
        flipper = (ViewFlipper) findViewById(R.id.flipper);
        flipper.startFlipping();
    }
}

就这样,基础使用我们就会了哈,其他更多使用我暂时也没看,以后看了再补上,点到为止。

效果图:



哈哈,图片是不是很6,想要的话进群获取,借机宣传。

MarqueeView的使用

可以看到这是个第三方控件,下面简述它的使用。

1.添加依赖

//垂直跑马灯
compile 'com.sunfusheng:marqueeview:1.3.2'

2.在布局文件中引用

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="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <com.sunfusheng.marqueeview.MarqueeView
        android:id="@+id/marqueeview"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        app:mvAnimDuration="1000"
        app:mvDirection="bottom_to_top"
        app:mvInterval="3000"
        app:mvTextColor="@color/colorAccent"
        app:mvTextSize="14sp"
        app:mvSingleLine="true"/>
LinearLayout>

这里有几个属性,下面给出一张对应表格

Attribute 属性 Description 描述
mvAnimDuration 一行文字动画执行时间
mvInterval 两行文字翻页时间间隔
mvTextSize 文字大小
mvTextColor 文字颜色
mvGravity 文字位置:left、center、right
mvSingleLine 单行设置
mvDirection 动画滚动方向:bottom_to_top、top_to_bottom、right_to_left、left_to_right

3.在页面使用Java代码

package learn.yfg.com.learnapplication;

import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.widget.TextView;
import android.widget.Toast;

import com.sunfusheng.marqueeview.MarqueeView;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 酥小鱼
 * @name PersonalProject
 * @class name:learn.yfg.com.learnapplication
 * @class describe
 * @time 2018/5/3 9:48
 * @change
 */

public class MarqueeViewActivity extends Activity{
    MarqueeView marqueeView;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_marqueeview);
        marqueeView = (MarqueeView) findViewById(R.id.marqueeview);

        List info = new ArrayList<>();
        info.add("1. 大家好,我是酥小鱼。");
        info.add("2. 欢迎大家关注我哦!");
        info.add("3. QQ交流群:589780530");
        info.add("4. 个人博客:https://blog.csdn.net/weixin_38703938");
        marqueeView.startWithList(info);

        // 在代码里设置自己的动画
        marqueeView.startWithList(info, R.anim.anim_bottom_in, R.anim.anim_top_out);
        //设置跑马灯的点击事件
        marqueeView.setOnItemClickListener(new MarqueeView.OnItemClickListener() {
            @Override
            public void onItemClick(int position, TextView textView) {
                Toast.makeText(getApplicationContext(), ". " + textView.getText(), Toast.LENGTH_SHORT).show();
            }
        });
    }
    @Override
    public void onStart() {
        super.onStart();
        marqueeView.startFlipping();
    }

    @Override
    public void onStop() {
        super.onStop();
        marqueeView.stopFlipping();
    }
}

这样基本使用就已完成了,这种效果还是很常见的,类似淘宝里都有的。

下面给出效果图

MarqueeView的简单使用_第2张图片

大概基本使用就是这样的,这边博客就到这里了

有啥补充的欢迎留言,或者进群交流  589780530

MarqueeView的简单使用_第3张图片

你可能感兴趣的:(MarqueeView的简单使用)