公告动画

公告动画_第1张图片
notice.gif

废话区:每次写动画,都是奇葩的需求。这次是一个公告的动画,按理说就是一条条的往上走呗,但是,我们的公告“长”着呢,屏幕展示不完,咋办,要先往左滚动,展示完了这一条信息之后再往上滚动。
需求:一条信息,如果超出屏幕,就要是跑马灯的效果,这个直接上原生的,没有超出不滚动。对于多条信息,如果超出屏幕,就要先往左移动,直到展示完毕,在往上面移动。
这边加上一个代码里面获取焦点的代码,这个页面已经非常复杂了,然后你无法获取到焦点,那这个跑马灯的效果是实现不了的,我这边就是在代码里面手动加上获取焦点的代码:

tv.setText(mNoticeBeanList.get(0).getTitle());
tv.setFocusable(true);
tv.setFocusableInTouchMode(true);
tv.requestFocus();
package com.example.retrofit.studyretrofit;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Paint;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.ViewFlipper;

/**
 * Created by on 2017/3/16.
 */

public class MyNoticeLayout extends LinearLayout {

    private ViewFlipper viewSwitcher;
    private int indexSel = 0;
    private Display mDisplay;
    private WindowManager mWindowManager;
    private String[] tags;
    private int mMW;
    private TextView mTv;
    private Context mContext;
    private TextView mStudy_tv;

    public MyNoticeLayout(@NonNull Context context) {
        this(context,null);
    }

    public MyNoticeLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        this.mContext = context;
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        initView(mContext);
    }

    private void initView(Context context) {
        mTv = (TextView) findViewById(R.id.tv);
        mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        mDisplay = mWindowManager.getDefaultDisplay();
        viewSwitcher = (ViewFlipper) findViewById(R.id.viewswitcher);

        tags = new String[3];
        tags[0] = "公告信息:xxx门店开业,满5000元减500元,热烈欢迎welcome to hahahha";
        tags[1] = "公告信息:xxx门店开业,满5000元减500元";
        tags[2] = "公告信息:xxx门店开业,满5000元减500元,热烈欢迎1111222333";
        mTv.setVisibility(tags.length > 1 ? View.GONE: View.VISIBLE);
        viewSwitcher.setVisibility(tags.length > 1 ? View.VISIBLE : View.GONE);

        if(tags.length > 1){
            for(int i= 0; i



    

    



布局:item_viewswitch



    

布局:




    



你可能感兴趣的:(公告动画)